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