#include <iostream> int main() { std::ios::sync_with_stdio(false); const int arrSize = 201718 + 1; int* powArr = new int[arrSize](); int n, a_i; std::cin>>n; for(int i=0; i<n; ++i){ std::cin>>a_i; ++powArr[a_i]; } int maxPow = 0; for(int a_i=0; a_i<arrSize-1; ++a_i){ powArr[a_i+1] += powArr[a_i]/2; if(powArr[a_i+1]) maxPow = a_i + 1; } std::cout << maxPow << std::endl; delete[] powArr; }
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 | #include <iostream> int main() { std::ios::sync_with_stdio(false); const int arrSize = 201718 + 1; int* powArr = new int[arrSize](); int n, a_i; std::cin>>n; for(int i=0; i<n; ++i){ std::cin>>a_i; ++powArr[a_i]; } int maxPow = 0; for(int a_i=0; a_i<arrSize-1; ++a_i){ powArr[a_i+1] += powArr[a_i]/2; if(powArr[a_i+1]) maxPow = a_i + 1; } std::cout << maxPow << std::endl; delete[] powArr; } |