#include <iostream> #include <vector> const int MAX_NUMBER = 201718 + 30; int main() { std::ios_base::sync_with_stdio(false); int n; std::cin >> n; std::vector<int> counter(MAX_NUMBER, 0); int number; for (int i = 0; i < n; ++i) { std::cin >> number; counter[number]++; } int result = 0; for (int i = 0; i < counter.size(); ++i) { if (counter[i] != 0) { result = i; } counter[i + 1] += counter[i] / 2; counter[i] = 0; } std::cout << result << std::endl; }
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 | #include <iostream> #include <vector> const int MAX_NUMBER = 201718 + 30; int main() { std::ios_base::sync_with_stdio(false); int n; std::cin >> n; std::vector<int> counter(MAX_NUMBER, 0); int number; for (int i = 0; i < n; ++i) { std::cin >> number; counter[number]++; } int result = 0; for (int i = 0; i < counter.size(); ++i) { if (counter[i] != 0) { result = i; } counter[i + 1] += counter[i] / 2; counter[i] = 0; } std::cout << result << std::endl; } |