【题目描述】
小小手头上的电话号码太多了,于是他决定要做一个电话簿。他所在地区的电话号码都是四位数字并且第一位不会是0或者8。
小小稍微有一点点强迫症,他的电话簿前两页一定要写一点有趣的笑话,不然他绝对不想打开这个无聊的电话簿。所以,电话号码会从第三页开始记录。为了格式的美观(以及满足他的强迫症),每页最多可以记录k个号码并且一定要是同一个数字开头的。同一页中的号码需要按字典序从小到大排序。
现在,小小嘿嘿一笑,问你:他的电话簿有多少页?
【输入格式】
第一行包含一个自然数K(0 < K < 255),表示每页最多可以有多少号码。
第二行包含一个自然数N(0 < N < 8000),表示号码的数量。
接下来N行,每行包含一个含有4个数码的数字(就是手机号码啦),以某种规则排序,并且不会重复。
【输出格式】
输出一行一个自然数,表示有多少页。
【样例输入】
5
10
1234
5678
1345
1456
1678
1111
5555
6789
6666
5000
【样例输出】
5
代码
#include <bits/stdc++.h>
using namespace std;
long long m,n,b,a[15],ans=2;
int main(){
cin>>m>>n;
for(int i=0;i<n;i++)
{
cin>>b;
a[b/1000]++;
}
for(int i=0;i<=9;i++)
{
if(a[i]%m==0)
{
ans=ans+a[i]/m;
}
else
{
ans=ans+a[i]/m+1;
}
}
cout<<ans;
return 0;
}