#include <iostream>
#include <cmath>
#include <cstdio>
#include <algorithm>
#include <cstring>
using namespace std;
int A[1100000];
int n,m;
int main(){
scanf("%d",&n);
for (int i=1;i<=n;i++){
int k1; scanf("%d",&k1); A[k1]++; m=max(m,k1);
}
int flag=0;
for (int i=0;i<m;i++) A[i+1]+=(A[i]/2);
while (A[m]){
A[m+1]=A[m]/2; m++;
}
printf("%d\n",m-1);
return 0;
}
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | #include <iostream> #include <cmath> #include <cstdio> #include <algorithm> #include <cstring> using namespace std; int A[1100000]; int n,m; int main(){ scanf("%d",&n); for (int i=1;i<=n;i++){ int k1; scanf("%d",&k1); A[k1]++; m=max(m,k1); } int flag=0; for (int i=0;i<m;i++) A[i+1]+=(A[i]/2); while (A[m]){ A[m+1]=A[m]/2; m++; } printf("%d\n",m-1); return 0; } |
English