SGU 127 Telephone directory(水~)

来源:互联网 发布:双四选一数据选择器 编辑:程序博客网 时间:2024/06/06 01:13

Description
有n个四位数的电话号码,现要将这些电话号码写进电话本里,电话本的每一页只能写第一个数字相同的电话号码,且每页至多写k个,问将这些电话号码写进电话本中至少需要写几页
Input
第一行为一整数k表示每页能够写的电话号码数量,第二行一整数n表示电话号码数量,之后n行每行一个四位数表示一个电话号码
Output
输出将这些电话号码写进电话本中至少需要写几页
Sample Input
5
10
1234
5678
1345
1456
1678
1111
5555
6789
6666
5000
Sample Output
5
Solution
水题,记num[i]为第一个数字为i的电话号码数量,则ans=sum((num[i]-1)/k+1)
Code

#include<cstdio>#include<iostream>#include<cstring>using namespace std;#define maxn 11int n,k,a,num[maxn],ans;int main(){    while(~scanf("%d%d",&k,&n))    {        memset(num,0,sizeof(num));        ans=0;        for(int i=1;i<=n;i++)        {            scanf("%d",&a);            num[a/1000]++;        }        for(int i=1;i<10;i++)            if(num[i])ans+=(num[i]-1)/k+1;        printf("%d\n",ans+2);    }    return 0;}
0 0
原创粉丝点击