#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); } |