#include<iostream> using namespace std; int N[210000]; int nmax=-1; void incr(int q){ if(q>nmax)nmax=q; if (N[q]<1){ N[q]++; return; } N[q]=0; incr(q+1); } int main(){ int n,a; cin>>n; for(int i=0;i<n;i++){ cin>>a; incr(a); } cout<<nmax<<endl; }
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 | #include<iostream> using namespace std; int N[210000]; int nmax=-1; void incr(int q){ if(q>nmax)nmax=q; if (N[q]<1){ N[q]++; return; } N[q]=0; incr(q+1); } int main(){ int n,a; cin>>n; for(int i=0;i<n;i++){ cin>>a; incr(a); } cout<<nmax<<endl; } |