#include <cstdio>
using namespace std;
long i, n, m, t;
long a[201800] = {0};
int main()
{
scanf("%ld", &n);
m = 0;
for(int i = 0; i < n; i++)
{
scanf("%ld", &t);
a[t]++;
if (m < t)
m = t;
}
for(int i = 0; i <= m; i++)
a[i + 1] += a[i] >> 1;
while (a[m + 1] > 0)
{
m++;
a[m + 1] += a[m] >> 1;
}
printf("%ld", m);
}
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 | #include <cstdio> using namespace std; long i, n, m, t; long a[201800] = {0}; int main() { scanf("%ld", &n); m = 0; for(int i = 0; i < n; i++) { scanf("%ld", &t); a[t]++; if (m < t) m = t; } for(int i = 0; i <= m; i++) a[i + 1] += a[i] >> 1; while (a[m + 1] > 0) { m++; a[m + 1] += a[m] >> 1; } printf("%ld", m); } |
English