#include <bits/stdc++.h> using namespace std; int t[1000000]; int main(){ ios_base::sync_with_stdio(0); int n, a, maksiu=-1, j; cin>>n; for(int i=0; i<n; i++){ cin>>a; t[a]++; maksiu=max(maksiu, a); } for(int i=1; i<maksiu+2; i++){ t[i]+=t[i-1]/2; } j=maksiu+1; while(t[j]>0){ t[j+1]+=t[j]/2; j++; } cout<<j-1<<'\n'; return 0; }
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 | #include <bits/stdc++.h> using namespace std; int t[1000000]; int main(){ ios_base::sync_with_stdio(0); int n, a, maksiu=-1, j; cin>>n; for(int i=0; i<n; i++){ cin>>a; t[a]++; maksiu=max(maksiu, a); } for(int i=1; i<maksiu+2; i++){ t[i]+=t[i-1]/2; } j=maksiu+1; while(t[j]>0){ t[j+1]+=t[j]/2; j++; } cout<<j-1<<'\n'; return 0; } |