Baltic Olympiad in Informatics 2018 Open - practice session

Start

2018-04-27 17:30 CEST

Baltic Olympiad in Informatics 2018 Open - practice session

End

2018-04-27 19:30 CEST
The end is near!
Contest is over.
Not yet started.
Contest is starting in -590 days 7:43:41

Time elapsed

2:00:00

Time remaining

0:00:00

Problem C
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

Twoje rozwiązanie będzie uruchomione na grupach testó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.

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