#include<stdio.h>
int tab[201719];
int main(){
int n;
int max=0;
int min=1000000;
scanf("%d",&n);
for(int i=0;i<n;i++){
int a;
scanf("%d",&a);
tab[a]++;
if(a<min)min=a;
if(a>max)max=a;
}
int it=min;
while(it<max){
tab[it+1]+=tab[it]/2;
it++;
}
while(tab[max]>1){
tab[max]=tab[max]/2;
it++;
}
printf("%d\n",it);
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<stdio.h> int tab[201719]; int main(){ int n; int max=0; int min=1000000; scanf("%d",&n); for(int i=0;i<n;i++){ int a; scanf("%d",&a); tab[a]++; if(a<min)min=a; if(a>max)max=a; } int it=min; while(it<max){ tab[it+1]+=tab[it]/2; it++; } while(tab[max]>1){ tab[max]=tab[max]/2; it++; } printf("%d\n",it); return 0; } |
English