#include <stdio.h>
using namespace std;
long long int ile;
long long int tab[202000];
long long rememberwhen;
long long najw=0;
void wczytanie(){
long long ko;
scanf("%lld", &ile);
for(int i=0;i<202000;i++){
tab[i]=0;
}
for(int i=0;i<ile;i++){
scanf("%lld", &ko);
tab[ko]+=1;
if(ko>najw){
najw=ko;
}
}
}
int main(){
wczytanie();
long ex=0;
for(int i=0;i<=202000;i++){
if(tab[i]==0&&i>najw){
break;
}
if(tab[i]>=2){
tab[i+1]+=tab[i]/2;
rememberwhen=i+1;
}
}
if(rememberwhen>najw){
printf("%lld", rememberwhen);
}else{
printf("%lld", najw);
}
}
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 37 38 39 | #include <stdio.h> using namespace std; long long int ile; long long int tab[202000]; long long rememberwhen; long long najw=0; void wczytanie(){ long long ko; scanf("%lld", &ile); for(int i=0;i<202000;i++){ tab[i]=0; } for(int i=0;i<ile;i++){ scanf("%lld", &ko); tab[ko]+=1; if(ko>najw){ najw=ko; } } } int main(){ wczytanie(); long ex=0; for(int i=0;i<=202000;i++){ if(tab[i]==0&&i>najw){ break; } if(tab[i]>=2){ tab[i+1]+=tab[i]/2; rememberwhen=i+1; } } if(rememberwhen>najw){ printf("%lld", rememberwhen); }else{ printf("%lld", najw); } } |
English