#include <stdio.h> unsigned long ska[202001]; int main () { unsigned long n, i, a, max; scanf ("%ld\n", &n); i = 0; max = 0; while (i < n) { scanf ("%ld", &a); ska[a]++; i++; if (a > max) max = a; } i = 1; while (i <= max) { if (ska[i] > 1) { ska[i+1] += (ska[i]/2); if (i == max) max++; } i++; } printf ("%ld\n", 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 | #include <stdio.h> unsigned long ska[202001]; int main () { unsigned long n, i, a, max; scanf ("%ld\n", &n); i = 0; max = 0; while (i < n) { scanf ("%ld", &a); ska[a]++; i++; if (a > max) max = a; } i = 1; while (i <= max) { if (ska[i] > 1) { ska[i+1] += (ska[i]/2); if (i == max) max++; } i++; } printf ("%ld\n", max); return 0; } |