#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; } |
English