Problem K
Dziewięćdziesiąt dziewięć
Languages
en
et
is
ja
lv
pl
ru
Grasz z kolegą w grę, która nazywa sie Dziewięćdziesiąt dziewięć. Zaczynasz, mówiąc $1$ lub $2$. Później wykonujecie ruchy na zmianę. Zaczyna kolega. W każdym ruchu gracz zwiększa liczbę o $1$ lub $2$. Wygrywa gracz, który pierwszy powie $99$!
Napisz program, który gra za ciebie i wygrywa.
Interakcja
To zadanie jest interaktywne.
Twój program zaczyna wypisując na standardowe wyjście jedną linię zawierającą $1$ lub $2$. Program sprawdzający wczytuje tę liczbę (nazwijmy ją $x$) i wypisuje pojedynczą liczbę zawierającą $x+1$ lub $x+2$, którą może wczytać twój program. Wtedy twój program wykonuje ruch wypisując liczbę o $1$ lub $2$ większą i tak dalej.
Jeśli twój program wygra wypisując liczbę $99$, powinien zakończyć się z kodem wyjścia 0. Jeśli przegra, wczytując $99$, również powinien się zakończyć; wówczas test otrzyma werdykt Wrong Answer. Wypisanie niepoprawnej wartości (także liczby większej niż $99$) również zakończy się wynikiem Wrong Answer. Sprawdzarka zakłada, że po wypisaniu błędnej wartości program od razu się zakończy. W przeciwnym razie może otrzymać wynik Wrong Answer, Runtime Error lub Time Limit Exceeded w zależności od swojego zachowania.
Pamiętaj, żeby opróżniać bufor wyjściowy po każdym ruchu, przed wczytaniem odpowiedzi sprawdzarki, inaczej twój program otrzyma wynik Time Limit Exceeded. Komendy opróżniające bufor we wspieranych językach:
-
Java: System.out.println() robi to automatycznie.
-
Python: print() również robi to sam.
-
C++: cout << endl; opróżnia bufor, dodatkowo wypisując znak nowej linii. Jeżeli używasz printf: fflush(stdout).
-
Pascal: Flush(Output).
Ograniczenia
Zestaw testów dzieli się na kilka grup, każda jest warta pewną liczbę punktów. Każda grupa składa się z jednego bądź większej liczby testów. Aby otrzymać punkty za daną grupę, Twoje rozwiązanie musi przejść wszystkie testy z tej grupy. Ostateczny wynik za zadanie jest liczony jako maksymalny wynik z pojedynczych zgłoszeń.
Grupa |
Punkty |
Ograniczenia |
1 |
30 |
Kolega zawsze zwiększa numer o $1$. |
2 |
30 |
Kolega zawsze zwiększa numer o $2$ (oprócz $98$). |
3 |
40 |
Kolega gra losowo, wybierając każdą opcję z prawdopodobieństwem 50% (oprócz $98$). |