#include <iostream> #include <vector> using namespace std; #define MAXN 210000 int main() { int n; cin >> n; vector<int> v(MAXN); int ma = 0; for (int i = 0; i < n; i++) { int a; cin >> a; v[a]++; ma = max(ma, a); } for (int i = 0; i <= ma; i++) { if (v[i] > 1) { v[i + 1] += v[i] / 2; if (i == ma) ma++; } } cout << ma << 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> #include <vector> using namespace std; #define MAXN 210000 int main() { int n; cin >> n; vector<int> v(MAXN); int ma = 0; for (int i = 0; i < n; i++) { int a; cin >> a; v[a]++; ma = max(ma, a); } for (int i = 0; i <= ma; i++) { if (v[i] > 1) { v[i + 1] += v[i] / 2; if (i == ma) ma++; } } cout << ma << endl; return 0; } |