// Piotr Golda
#include <iostream>
#include <vector>
using Container = std::vector < bool > ;
using size_type = Container::size_type;
size_type N;
const size_type SIZE{ 201718 + 20 + 2 };
Container V( SIZE, false );
int main()
{
std::ios_base::sync_with_stdio(false);
std::cin >> N;
size_type value;
for (size_type i = 0; i < N; ++i)
{
std::cin >> value;
while (V[value])
{
V[value] = false;
++value;
}
V[value] = true;
}
for (size_type i = SIZE - 1; i > 0; --i)
{
if (V[i])
{
std::cout << i << std::endl;
break;
}
}
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 | // Piotr Golda #include <iostream> #include <vector> using Container = std::vector < bool > ; using size_type = Container::size_type; size_type N; const size_type SIZE{ 201718 + 20 + 2 }; Container V( SIZE, false ); int main() { std::ios_base::sync_with_stdio(false); std::cin >> N; size_type value; for (size_type i = 0; i < N; ++i) { std::cin >> value; while (V[value]) { V[value] = false; ++value; } V[value] = true; } for (size_type i = SIZE - 1; i > 0; --i) { if (V[i]) { std::cout << i << std::endl; break; } } return 0; } |
English