#include <bits/stdc++.h> #define N 2000005 using namespace std; int tab[N]; int main(){ int dodaj, tmp, n; scanf("%d", &n); for(int i=0; i<n; ++i){ scanf("%d", &tmp); tab[tmp]++; } for(int i=0; i<2000001; ++i){ tab[i+1]+=tab[i]/2; } for(int i=2000003; i>-1; --i){ if(tab[i]){ printf("%d", i); 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 | #include <bits/stdc++.h> #define N 2000005 using namespace std; int tab[N]; int main(){ int dodaj, tmp, n; scanf("%d", &n); for(int i=0; i<n; ++i){ scanf("%d", &tmp); tab[tmp]++; } for(int i=0; i<2000001; ++i){ tab[i+1]+=tab[i]/2; } for(int i=2000003; i>-1; --i){ if(tab[i]){ printf("%d", i); return 0; } } } |