Telephone directory - SGU 127(水)
题目大意:有一个电话簿,每页最多纪录K行电话,现在有N个电话要记录在电话薄上,要求同页的电话号码的首位要相同,电话簿的前两页是纪录的别的东西,问最少需要多少页电话簿。
分析:直接求首位数字有多少个即可.....
=====================================================================================================================
#include<stdio.h> #include<algorithm> #include<string.h> #include<math.h> #include<set> using namespace std; int main() { int x, N, K, num[10]={0}; scanf("%d%d", &K, &N); while(N--) { scanf("%d", &x); num[x/1000] += 1; } int sum = 2; for(int i=1; i<10; i++) { sum += num[i] / K + (num[i]%K ? 1 : 0); } printf("%d\n", sum); return 0; }