Problem H
Üheksakümmend üheksa
Languages
en
et
is
ja
lv
pl
ru
Sa mängid sõbraga mängu, mille nimi on “üheksakümmend üheksa”. Sina alustad, öeldes kas arvu $1$ või arvu $2$. Seejärel ütlete te sõbraga kordamööda arve, kusjuures iga arv peab olema eelmisest kas $1$ või $2$ võrra suurem. Võidab see, kes ütleb arvu $99$.
Kirjutada programm, mis seda mängu Sinu eest mängides alati võidab.
Interaktsioon
Selle ülesande hindamine on interaktiivne.
Sinu programm peab algatuseks väljastama arvu $1$ või $2$ ja selle järele reavahetuse. Testimisprogramm loeb selle arvu (tähistame seda $x$) ja vastab kas arvuga $x+1$ või arvuga $x+2$, mille Sinu programm saab sisse lugeda. Seejärel peab Sinu programm omakorda väljastama $1$ või $2$ võrra suurema arvu j.n.e kuni mängu lõpuni.
Kui Sinu programm suudab mängu võita ja väljastab $99$, peab ta pärast seda töö normaalselt lõpetama. Kui Sinu programm loeb sisendist arvu $99$, peab ta kohe pärast seda töö lõpetama; selle testigrupi tulemuseks näidatakse “Wrong Answer”. Lubamatute väärtuste (ka $99$-st suuremate arvude) väljastamisel on tulemuseks samuti “Wrong Answer”, kui Su programm seejärel kohe töö lõpetab. Kui Su programm ei lõpeta tööd nõuetekohaselt, võib testigrupi tulemuseks olla “Wrong Answer”, “Runtime Error” või “Time Limit Exceeded”, sõltuvat sellest, kuidas Su programm täpselt käitub.
Sinu programm peab iga oma käigu väljastamise järel ja enne testimisprogrammi käigu lugemist väljundpuhvri tühjendama. Kui Sinu programm seda ei tee, on hindamise tulemuseks “Time Limit Exceeded”. Väljundpuhvri tühendamine käib järgmiselt:
-
Java: System.out.println() tühjendab puhvri automaatselt.
-
Python: print() tühjendab puhvri automaatselt.
-
C++: cout << endl; väljastab reavahetuse ja tühjendab seejärel puhvri; printf() kasutamise järel tühjendab puhvri fflush(stdout).
-
Pascal: Flush(Output).
Piirangud
Selles ülesandes on testid jagatud gruppidesse. Iga grupi eest saavad punkte ainult need programmid, mis lahendavad õigesti kõik gruppi kuuluvad testid. Sinu lõplik skoor on esitatud lahenduste skooride maksimum.
Grupp |
Punkte |
Piirangud |
1 |
30 |
Vastane suurendab arvu alati 1 võrra. |
2 |
30 |
Vastane suurendab arvu alati 2 võrra (välja arvatud 98 juures). |
3 |
40 |
Vastane suurendab arvu 1 või 2 võrra juhuslikult 50% tõenäosusega(välja arvatud 98 juures). |