#include <iostream>
using namespace std;
int tab[210800];
int main()
{
int n,a,r,maxi=0;
cin>>n;
for(int i=0;i<n;i++){
cin>>a;
if(a>maxi) maxi=a;
tab[a]++;
if(tab[a]==2){
if(tab[a+1]==1){
r=1;
do{
tab[a+r+1]++;
if(a+r+1>maxi) maxi=a+r+1;
tab[a+r]=0;
r++;
}while(tab[a+r]==2);
}
else{
tab[a+1]++;
if(a+1>maxi) maxi=a+1;
}
tab[a]=0;
}
}
cout<<maxi;
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 27 28 29 30 31 | #include <iostream> using namespace std; int tab[210800]; int main() { int n,a,r,maxi=0; cin>>n; for(int i=0;i<n;i++){ cin>>a; if(a>maxi) maxi=a; tab[a]++; if(tab[a]==2){ if(tab[a+1]==1){ r=1; do{ tab[a+r+1]++; if(a+r+1>maxi) maxi=a+r+1; tab[a+r]=0; r++; }while(tab[a+r]==2); } else{ tab[a+1]++; if(a+1>maxi) maxi=a+1; } tab[a]=0; } } cout<<maxi; return 0; } |
English