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