2503 兔子的数量
每个兔子都有颜色。其中一些兔子(可能是全部)告诉你还有多少其他的兔子和自己有相同的颜色(不包括自己)。问森林中的兔子最少有多少只?
例如:有 4 只兔子给出了答案,分别是 1 1 2 2,我们认为 2 个回答 1 的兔子颜色相同,这样共有 2 只兔子。2 个回答 2 的兔子颜色相同,那么可能还有另外一只与这两只颜色相同,因此共有 3 只,这样最少也有 5 只兔子。
收起
输入
第一行输入一个数n,表示回答问题的兔子的数量(0≤n≤100000); 第二行输入n个数,中间用空格分隔,表示上面n个回答对应的答案(0≤a[i]≤999);
输出
输出一个数,表示最少的兔子数量
数据范围
(0≤n≤100000, 0≤a[i]≤999)
输入样例
3 1 1 2
输出样例
5
样例解释
两个1分为一组,有两只兔子。一个2分为一组,即除了这只兔子自己,还有两只,即有三只兔子,这样最少共有5只兔子。
Code:
#include <bits/stdc++.h>
using namespace std;
int a[1010],ans;
int main() {
int n,x;
cin>>n;
for(int i=0;i<n;i++){
cin>>x;
a[x+1]++;
}
for(int i=0;i<1005;i++){
if(a[i]>0){
ans+=(a[i]+i-1)/i*i;
}
}
cout<<ans;
}