#include <stdio.h> #include <stdlib.h> const int limit=250000; int main(int argc, char** argv) { int sum[limit]; int n; for(int i=0;i<limit;++i) sum[i]=0; scanf("%d", &n); // wczytanie danych i zliczenie potęg for(int i=0;i<n;++i) { int a; scanf("%d", &a); sum[a]++; } // przenoszenie nadmiarowych wartości int max=0; for(int i=0;i<limit;++i) { if(sum[i]>0) { max=i; sum[i+1]+=sum[i]>>1; } } printf("%d", max); 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 27 28 29 30 31 | #include <stdio.h> #include <stdlib.h> const int limit=250000; int main(int argc, char** argv) { int sum[limit]; int n; for(int i=0;i<limit;++i) sum[i]=0; scanf("%d", &n); // wczytanie danych i zliczenie potęg for(int i=0;i<n;++i) { int a; scanf("%d", &a); sum[a]++; } // przenoszenie nadmiarowych wartości int max=0; for(int i=0;i<limit;++i) { if(sum[i]>0) { max=i; sum[i+1]+=sum[i]>>1; } } printf("%d", max); return 0; } |