#include <cstdio>
#include <algorithm>
const int MAX = 1001000;
int n, coins[MAX];
int main(int argc, char *argv[]) {
scanf("%d", &n);
for (int c = 0; c < n; c++) {
scanf("%d", coins + c);
}
std::sort(coins, coins + n);
int r = 0;
int num = 0;
for (int c = 0; c < n; c++) {
while (r < coins[c]) {
num >>= 1;
r++;
}
if (r == coins[c]) {
num++;
}
}
while (num > 1) {
num >>= 1;
r++;
}
printf("%i\n", r);
}
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 32 33 34 | #include <cstdio> #include <algorithm> const int MAX = 1001000; int n, coins[MAX]; int main(int argc, char *argv[]) { scanf("%d", &n); for (int c = 0; c < n; c++) { scanf("%d", coins + c); } std::sort(coins, coins + n); int r = 0; int num = 0; for (int c = 0; c < n; c++) { while (r < coins[c]) { num >>= 1; r++; } if (r == coins[c]) { num++; } } while (num > 1) { num >>= 1; r++; } printf("%i\n", r); } |
English