#include<iostream> #include<string> #include<set> #include<list> #include<map> #include<vector> #include<queue> #include<stack> #include <cstdio> #include <cstring> #include <algorithm> #include <cmath> #include <stdio.h> using namespace std; int main() { ios_base::sync_with_stdio(0); map<long long, long long> nominaly; map<long long, long long>::iterator it; int n; cin>>n; while(n--) { long long a; cin>>a; nominaly[a]++; } for(it=nominaly.begin(); it!=nominaly.end(); it++) { int a = it->first; int b = it->second; if(b/2 > 0) { nominaly[a+1] += b/2; //nominaly[a] = b/2; } } it = nominaly.end(); it--; cout<<it->first; /* for(it=nominaly.begin(); it!=nominaly.end(); it++) { int a = it->first; int b = it->second; cout<<a<<" "<<b<<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 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 | #include<iostream> #include<string> #include<set> #include<list> #include<map> #include<vector> #include<queue> #include<stack> #include <cstdio> #include <cstring> #include <algorithm> #include <cmath> #include <stdio.h> using namespace std; int main() { ios_base::sync_with_stdio(0); map<long long, long long> nominaly; map<long long, long long>::iterator it; int n; cin>>n; while(n--) { long long a; cin>>a; nominaly[a]++; } for(it=nominaly.begin(); it!=nominaly.end(); it++) { int a = it->first; int b = it->second; if(b/2 > 0) { nominaly[a+1] += b/2; //nominaly[a] = b/2; } } it = nominaly.end(); it--; cout<<it->first; /* for(it=nominaly.begin(); it!=nominaly.end(); it++) { int a = it->first; int b = it->second; cout<<a<<" "<<b<<endl; } */ } |