#include<bits/stdc++.h> using namespace std; int t[300000]; int n,a,mx; int main() { scanf("%i",&n); for(int i=0;i<n;i++) { scanf("%i",&a); t[a]++; mx=max(mx,a); } for(int i=0;i<=mx;i++) { t[i+1]+=t[i]/2; } while(t[mx+1]>1) { mx+=1; t[mx+1]+=t[mx]/2; } printf("%i",mx+1); }
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | #include<bits/stdc++.h> using namespace std; int t[300000]; int n,a,mx; int main() { scanf("%i",&n); for(int i=0;i<n;i++) { scanf("%i",&a); t[a]++; mx=max(mx,a); } for(int i=0;i<=mx;i++) { t[i+1]+=t[i]/2; } while(t[mx+1]>1) { mx+=1; t[mx+1]+=t[mx]/2; } printf("%i",mx+1); } |