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