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 9:21:26

Time elapsed

2:00:00

Time remaining

0:00:00

Problem C
Deviņdesmit deviņi

Jūs kopā ar draugu spēlējat spēli Deviņdesmit deviņi. Jūs uzsākat spēli, pasakot skaitli $1$ vai $2$. Tad pārmaiņus jūs abi veicat gājienus, sākot ar jūsu draugu, katrā gājienā šo skaitli palielinot par $1$ vai $2$. Uzvar tas spēlētājs, kas pirmais pasaka $99$!

Uzrakstiet programmu, kas spēlē šo spēli jūsu vietā un uzvar.

Komunikācija

Uzdevumā tiek lietots interaktīvs ievads/izvads.

Jūsu programmai jāuzsāk darbība, izvadot vienu rindu ar skaitli $1$ vai $2$. Vērtēšanas programma tad nolasīs šo skaitli (sauksim to par $x$) un atbildē izvadīs rindu ar $x+1$ vai $x+2$, ko jūsu programma var nolasīt. Jūsu programmai tad jāizvada skaitlis, kas ir par $1$ vai $2$ lielāks nekā nolasītais skaitlis, un tā tālāk.

Ja jums izdodas uzvarēt un izvadīt $99$, jūsu programmai jābeidz darbība normāli (ar atgriešanās kodu 0). Ja uzvar jūsu draugs un jūsu programma nolasa $99$, tad darbība arī jābeidz normāli; par testa grupu tad saņemsiet vērtējumu Wrong Answer. Izvadot nekorektas vērtības (tai skaitā vērtības, lielākas par $99$), arī iegūsiet vērtējumu Wrong Answer, pieņemot, ka jūsu programma pēc tam pabeidz darbību. Ja jūsu programma beidz darbu nekorekti, tā saņems vienu no Wrong Answer, Runtime Error vai Time Limit Exceeded vērtējumiem atkarībā no situācijas.

Jums jānodrošina, ka programma sinhronizē (flush) izvada datu plūsmu pirms tā nolasa vērtēšanas programmas atbildi, citādi saņemsiet vērtējumu Time Limit Exceeded. Atbalstītajās valodās to var izdarīt sekojošā veidā:

  • Java: System.out.println() sinhronizē automātiski.

  • Python: print() sinhronizē automātiski.

  • C++: cout << endl; sinhronizē, papildus izvada jaunas rindas simbolu. Ja lietojat printf, fflush(stdout).

  • Pascal: Flush(Output).

Ierobežojumi

Jūsu risinājums tiks testēts uz vairākām testu grupām, par katru no tām var iegūt punktus. Katra testu grupa satur vienu vai vairākus testus. Lai iegūtu punktus par testu grupu, jums ir pareizi jāatrisina visi testi šajā grupā.

Grupa

Punkti

Ierobežojumi

1

30

Jūsu draugs vienmēr skaitli palielina par 1.

2

30

Jūsu draugs vienmēr skaitli palielina par 2 (izņemot pie skaitļa 98).

3

40

Jūsu draugs spēlē nejauši, katrai izvēlei 50% varbūtība (izņemot pie skaitļa 98).