#include<cstdio>
#include<iostream>
#include<math.h>
using namespace std;
#define MAX 201719
int main(){
int T[MAX];
for (int i=0;i<MAX;i++) T[i]=0;
int n;
scanf("%d",&n);
int mmin = MAX+1;
int mmax = -1;
int a;
while (n--)
{
scanf("%d",&a);
T[a]++;
if (a<mmin) mmin = a;
if (a>mmax) mmax = a;
}
mmax++;
int current = 0;
for (;mmin<mmax;mmin++)
{
current/=2;
current+=T[mmin];
}
mmax--;
while (current!=1)
{
current/=2;
mmax++;
}
printf("%d\n",mmax);
}
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 27 28 29 30 31 32 33 34 35 36 | #include<cstdio> #include<iostream> #include<math.h> using namespace std; #define MAX 201719 int main(){ int T[MAX]; for (int i=0;i<MAX;i++) T[i]=0; int n; scanf("%d",&n); int mmin = MAX+1; int mmax = -1; int a; while (n--) { scanf("%d",&a); T[a]++; if (a<mmin) mmin = a; if (a>mmax) mmax = a; } mmax++; int current = 0; for (;mmin<mmax;mmin++) { current/=2; current+=T[mmin]; } mmax--; while (current!=1) { current/=2; mmax++; } printf("%d\n",mmax); } |
English