#include "cstdio"
#include "algorithm"
#include "vector"
#include "cmath"
using namespace std;
long long n, x, cnt[202005], k, tmp, power[21], res;
int main()
{
for (int i = 0, r = 1; i < 21; i++, r *= 2)
{
power[i] = r;
}
scanf ("%lld", &n);
while (n--)
{
scanf ("%lld", &x);
cnt[x]++;
}
for (int i = 1; i < 202000; i++)
{
if (cnt[i] == 0)
{
continue;
}
else
{
res = i;
}
k = cnt[i];
while (k > 1)
{
cnt[i + (int)log2(k)]++;
k -= power[(int)log2(k)];
}
}
printf ("%lld\n", res);
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 32 33 34 35 36 37 38 39 40 41 42 | #include "cstdio" #include "algorithm" #include "vector" #include "cmath" using namespace std; long long n, x, cnt[202005], k, tmp, power[21], res; int main() { for (int i = 0, r = 1; i < 21; i++, r *= 2) { power[i] = r; } scanf ("%lld", &n); while (n--) { scanf ("%lld", &x); cnt[x]++; } for (int i = 1; i < 202000; i++) { if (cnt[i] == 0) { continue; } else { res = i; } k = cnt[i]; while (k > 1) { cnt[i + (int)log2(k)]++; k -= power[(int)log2(k)]; } } printf ("%lld\n", res); return 0; } |
English