#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; } */ } |
English