#include <bits/stdc++.h> using namespace std; int main(){ int n; cin>>n; vector<int> v; v.resize(201719, 0); for(int i = 0; i < n; i++){ int x; cin>>x; v[x]++; } int last = -1; int i = 0; while(1){ if(v[i] != 0){ last = i; if(i == v.size() - 1) v.push_back(0); v[i+1] += v[i]/2; } else{ if(i == v.size() - 1) break; } i++; } 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 | #include <bits/stdc++.h> using namespace std; int main(){ int n; cin>>n; vector<int> v; v.resize(201719, 0); for(int i = 0; i < n; i++){ int x; cin>>x; v[x]++; } int last = -1; int i = 0; while(1){ if(v[i] != 0){ last = i; if(i == v.size() - 1) v.push_back(0); v[i+1] += v[i]/2; } else{ if(i == v.size() - 1) break; } i++; } cout<<last<<endl; } |