#include <iostream>
int mon[201800]; // 201718 + 20+
using namespace std;
int main(){
int i,n, maks=0, mm;
cin >> n;
for(i=0;i<201800;i++)
mon[i]=0;
for(i=1;i<=n;i++){
cin >> mm;
mon[mm]++;
if(maks<mm)
maks=mm;
}
i=0;
while(i<=maks){
mon[i+1] += mon[i] / 2;
mon[i] = mon[i] % 2; // niepotrzebne
if((mon[i+1]>0)&&(maks<i+1))
maks=i+1;
i++;
}
cout << maks << endl;
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 | #include <iostream> int mon[201800]; // 201718 + 20+ using namespace std; int main(){ int i,n, maks=0, mm; cin >> n; for(i=0;i<201800;i++) mon[i]=0; for(i=1;i<=n;i++){ cin >> mm; mon[mm]++; if(maks<mm) maks=mm; } i=0; while(i<=maks){ mon[i+1] += mon[i] / 2; mon[i] = mon[i] % 2; // niepotrzebne if((mon[i+1]>0)&&(maks<i+1)) maks=i+1; i++; } cout << maks << endl; return 0; } |
English