Hide

Problem H
Dziewięćdziesiąt dziewięć

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$).

Please log in to submit a solution to this problem

Log in