#include<iostream> #include<vector> using namespace std; constexpr int SIZE=300*1000; int main() { vector<int> results; results.resize(SIZE); int n; cin>>n; for(int i=0;i<n;i++) { int a; cin>>a; results[a]++; } int last=0; for(int i=0;i<SIZE-1;i++) { if(results[i]>0) { last=i; } results[i+1]+=results[i]/2; } cout<<last<<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 | #include<iostream> #include<vector> using namespace std; constexpr int SIZE=300*1000; int main() { vector<int> results; results.resize(SIZE); int n; cin>>n; for(int i=0;i<n;i++) { int a; cin>>a; results[a]++; } int last=0; for(int i=0;i<SIZE-1;i++) { if(results[i]>0) { last=i; } results[i+1]+=results[i]/2; } cout<<last<<endl; } |