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