Wprowadzenie
Biorąc pod uwagę zestaw procentowy wyborów w ankiecie, oblicz minimalną liczbę wyborców, którzy muszą być w ankiecie, aby wygenerować te statystyki.
Przykład: jakie jest twoje ulubione zwierzę domowe?
- Pies:
44.4%
- Kot:
44.4%
- Mysz:
11.1%
Wynik: 9
(minimalna możliwa liczba wyborców)
Okular
Oto wymagania dotyczące Twojego programu / funkcji:
- Otrzymujesz tablicę wartości procentowych jako dane wejściowe (na stdin, jako argument funkcji itp.)
- Każda wartość procentowa jest liczbą zaokrągloną do jednego miejsca po przecinku (np
44.4 44.4 11.1
.). - Oblicz minimalną możliwą liczbę wyborców w ankiecie, których wyniki dałyby dokładnie te wartości procentowe po zaokrągleniu do jednego miejsca po przecinku (na wyjściu standardowym lub wartości zwracanej przez funkcję).
- Premia : -15 znaków, jeśli możesz rozwiązać w sposób „nietrywialny” (tzn. Nie wymaga iteracji przez każdą możliwą liczbę wyborców, dopóki nie znajdziesz pierwszego, który działa)
Przykład
>./pollreverse 44.4 44.4 11.1
9
>./pollreverse 26.7 53.3 20.0
15
>./pollreverse 48.4 13.7 21.6 6.5 9.8
153
>./pollreverse 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 99.6
2000
>./pollreverse 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 98.7
667
>./pollreverse 0.2 0.2 0.2 0.2 0.2 0.2 0.2 0.2 0.2 98.7
2000
>./pollreverse 0.2 0.2 0.2 0.2 0.2 0.2 0.2 0.2 0.2 97.8
401
Punktacja
To jest golf golfowy, więc wygrywa najkrótsza możliwa postać. Wszelkie bonusy są odejmowane od całkowitej liczby postaci.
0.5%
z sumy i za każdym razem, gdy następuje zaokrąglanie w górę, sumujesz 0.5%
do sumy. Ostatnie cztery przypadki testowe zostały celowo skonstruowane w celu optymalnego wykorzystania tego zjawiska. W pierwszym przypadku testowym, który daje wynik 2000
, każdy z pierwszych 9 wpisów reprezentuje 1
głos (i wszystkie są zaokrąglane w górę 0.5%
), podczas gdy ostatni reprezentuje 1991
głosy (i jest zaokrąglany w dół ~ 0.5%
). Jeśli obliczasz te wartości procentowe ręcznie i zaokrąglasz do 1 miejsca po przecinku, zobaczysz, że wszystkie są poprawne.
26.7 53.3 20.0
(4 8 3 z 15),48.4 13.7 21.6 6.5 9.8
(74 21 33 10 15 z 153) itd.