#include<cstdio>
#include<algorithm>
#include<memory>
int main()
{
unsigned n;
std::scanf("%u", &n);
std::unique_ptr<unsigned[]>A{ new unsigned[n] };
for (unsigned i = 0; i != n; ++i)
std::scanf("%u", &A[i]);
std::sort(&A[0], &A[n]);
unsigned last = 0;
unsigned count = 0;
for (unsigned i = 0; i != n; ++i)
{
if (last != A[i])
{
if (A[i] - last >= 32)
count = 0;
else
count >>= A[i] - last;
last = A[i];
}
++count;
}
std::printf("%u\n", last + (31U -__builtin_clz(count)));
}
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 | #include<cstdio> #include<algorithm> #include<memory> int main() { unsigned n; std::scanf("%u", &n); std::unique_ptr<unsigned[]>A{ new unsigned[n] }; for (unsigned i = 0; i != n; ++i) std::scanf("%u", &A[i]); std::sort(&A[0], &A[n]); unsigned last = 0; unsigned count = 0; for (unsigned i = 0; i != n; ++i) { if (last != A[i]) { if (A[i] - last >= 32) count = 0; else count >>= A[i] - last; last = A[i]; } ++count; } std::printf("%u\n", last + (31U -__builtin_clz(count))); } |
English