RSS
linjiazhen
分类
标签云
搜索
随机文章
最新评论
最新留言
链接
计数器
145092
SGU 127: Telephone directory
题目链接:http://acm.sgu.ru/problem.php?contest=0&problem=127
题目大意:
一个同学要做一本电话簿,电话号码有四个数字组成,开头不含0和8,封面和说明用了2页,每页不能超过K个号码,每个新号码为第一个数字的要另起一页,每个号码按照递增顺序。给你n个号码,问最少需要用多少页纸。
解题思路:
因为页码只跟每个开头数字的号码数量有关,比如1开头的号码有7个,每页最大号码数是5,那么1开头的号码要用2页,每个数字开头的都算出来,然后加上2页封面和说明就是答案。
解题代码:
#include<iostream> #include<cstring> using namespace std; int s[10]; int main(){ int k,n; while(cin>>k>>n){ int t; memset(s,0,sizeof(s)); while(n--){ cin>>t; s[t/1000]++; } int sum=0; for(int i=1;i<10;i++){ if(s[i]%k) sum+=s[i]/k+1; else sum+=s[i]/k; } sum+=2; cout<<sum<<endl; } }