#include <iostream>
#include <cstdio>
using namespace std;
int n, maxx = -1, sum, wynik = 0, tab[300100], pom;
//******************************************************************
int main()
{
scanf("%d", &n);
for(int i = 0; i < n; i++)
{
int a;
scanf("%d", &a);
tab[a]++;
maxx = max(maxx, a);
}
for(int i = 0; i <= maxx; i++)
{
sum += tab[i];
//cout << i << " " << sum << endl;
if(((sum>>1)<<1) != sum) wynik = pom;
sum >>= 1;
pom++;
}
while(sum != 0)
{
if(((sum>>1)<<1) != sum) wynik = pom;
sum >>= 1;
pom++;
}
printf("%d\n", 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 | #include <iostream> #include <cstdio> using namespace std; int n, maxx = -1, sum, wynik = 0, tab[300100], pom; //****************************************************************** int main() { scanf("%d", &n); for(int i = 0; i < n; i++) { int a; scanf("%d", &a); tab[a]++; maxx = max(maxx, a); } for(int i = 0; i <= maxx; i++) { sum += tab[i]; //cout << i << " " << sum << endl; if(((sum>>1)<<1) != sum) wynik = pom; sum >>= 1; pom++; } while(sum != 0) { if(((sum>>1)<<1) != sum) wynik = pom; sum >>= 1; pom++; } printf("%d\n", wynik); } |
English