#include <cstdio>
unsigned long coins[1000000] = {0};
int main(void) {
unsigned count, exp, max = 0;
scanf("%u",&count);
for(unsigned i=0;i<count;++i) {
scanf("%u",&exp);
++coins[exp];
if(exp>max) {
max = exp;
}
}
for(unsigned i=0;i<=max;++i) {
if(coins[i]>1) {
coins[i+1] += coins[i]/2;
if(i==max)
++max;
}
}
printf("%u\n",max);
return 0;
}
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | #include <cstdio> unsigned long coins[1000000] = {0}; int main(void) { unsigned count, exp, max = 0; scanf("%u",&count); for(unsigned i=0;i<count;++i) { scanf("%u",&exp); ++coins[exp]; if(exp>max) { max = exp; } } for(unsigned i=0;i<=max;++i) { if(coins[i]>1) { coins[i+1] += coins[i]/2; if(i==max) ++max; } } printf("%u\n",max); return 0; } |
English