#include<stdio.h> int main() { int n; // ilosc monet, 1..1000000 int monety[201741]; // ilosci poszczegolnych nominalow int nominal; // nominal danej monety, 0..201718 int max_nom; // maksymalny nominal po wymianie w banku for (int i = 0; i < 201741; i++) monety[i] = 0; scanf("%d", &n); for (int i = 0; i < n; i++) { scanf("%d", &nominal); monety[nominal]++; } for (int i = 0; i < 201740; i++) { if (monety[i] > 0) { monety[i+1] += monety[i] / 2; max_nom = i; } } printf("%d", max_nom); 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 | #include<stdio.h> int main() { int n; // ilosc monet, 1..1000000 int monety[201741]; // ilosci poszczegolnych nominalow int nominal; // nominal danej monety, 0..201718 int max_nom; // maksymalny nominal po wymianie w banku for (int i = 0; i < 201741; i++) monety[i] = 0; scanf("%d", &n); for (int i = 0; i < n; i++) { scanf("%d", &nominal); monety[nominal]++; } for (int i = 0; i < 201740; i++) { if (monety[i] > 0) { monety[i+1] += monety[i] / 2; max_nom = i; } } printf("%d", max_nom); return 0; } |