#include<iostream> using namespace std; const int MAX_TAB = 201740; const int MAX_A = 201738; main() { int monety[MAX_TAB]; for (int i = 0; i <= MAX_A; ++i) monety[i] = 0; int n; cin >> n; for (int i = 0; i < n; ++i) { int moneta; cin >> moneta; ++monety[moneta]; } for (int i = 0; i <= MAX_A; ++i) { while (monety[i] > 1) { monety[i] /= 2; ++monety[i+1]; } } int wynik = MAX_A; while (wynik > 0) { if (monety[wynik] != 0) break; else --wynik; } cout << wynik; }
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 40 | #include<iostream> using namespace std; const int MAX_TAB = 201740; const int MAX_A = 201738; main() { int monety[MAX_TAB]; for (int i = 0; i <= MAX_A; ++i) monety[i] = 0; int n; cin >> n; for (int i = 0; i < n; ++i) { int moneta; cin >> moneta; ++monety[moneta]; } for (int i = 0; i <= MAX_A; ++i) { while (monety[i] > 1) { monety[i] /= 2; ++monety[i+1]; } } int wynik = MAX_A; while (wynik > 0) { if (monety[wynik] != 0) break; else --wynik; } cout << wynik; } |