#include<bits/stdc++.h>
using namespace std;
int t[300000];
int n,a,mx;
int main()
{
scanf("%i",&n);
for(int i=0;i<n;i++)
{
scanf("%i",&a);
t[a]++;
mx=max(mx,a);
}
for(int i=0;i<=mx;i++)
{
t[i+1]+=t[i]/2;
}
while(t[mx+1]>1)
{
mx+=1;
t[mx+1]+=t[mx]/2;
}
printf("%i",mx+1);
}
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> using namespace std; int t[300000]; int n,a,mx; int main() { scanf("%i",&n); for(int i=0;i<n;i++) { scanf("%i",&a); t[a]++; mx=max(mx,a); } for(int i=0;i<=mx;i++) { t[i+1]+=t[i]/2; } while(t[mx+1]>1) { mx+=1; t[mx+1]+=t[mx]/2; } printf("%i",mx+1); } |
English