| 시간 제한 | 메모리 제한 | 제출 | 정답 | 맞힌 사람 | 정답 비율 |
|---|---|---|---|---|---|
| 1 초 | 1024 MB | 0 | 0 | 0 | 0.000% |
Artūras ir Vytautas žaidžia skaičių spėjimo žaidimą.
Pirmiausia, Artūras sugalvoja skaičių $A$ nuo $1$ iki $N$. Tada Vytautas spėja skaičių. Jei Vytautas spėjo per didelį skaičių, Artūras gauna vienokį kiekį taškų, o jei per mažą – kitokį. Žaidimas baigiasi, kai Vytautas atspėja skaičių.
Sakykime, Vytautas spėjo skaičių $V$, tada taškai dalinami šitaip:
Artūras laimi, jei surenka daugiau taškų nei Vytautas. Kitu atveju laimi Vytautas.
Artūras labai nori laimėti, todėl kartais sukčiauja. Iš pradžių nesugalvoja skaičiaus, o savo skaičių derina prie Vytauto klausimų. Artūras nenori būti pagautas, todėl neduoda prieštaringos informacijos, t. y. visada bus nors vienas skaičius, atitinkantis visus Artūro kol kas duotus atsakymus.
Kadangi Vytautas labai mėgsta varžytis, jis nori laimėti bet kokiu atveju. Todėl jis pasirinko parametrus $N$, $M$, $D$ ir $T$ taip, kad visada galėtų laimėti, kad ir kokį skaičių Artūras sugalvotų.
Parašykite programą, kuri žaisdama už Vytautą laimėtų žaidimą.
Ši užduotis yra interaktyvi – įvedimo ir išvedimo operacijos turi būti atliekamos nustatyta tvarka.
Pirmoje įvesties eilutėje yra skaičiai $N$, $M$, $D$ ir $T$.
Tada prasideda žaidimas. Jūs išvedate vieną skaičių – Artūro sugalvoto skaičiaus spėjimą. Tada jums įvestyje bus pateikta eilutė su viena raide:
g – jūsų spėjimas geras;m – jūsų spėjimas per mažas;d – jūsų spėjimas per didelis;k – įvestyje padarėte klaidą arba Artūras jau turi daugiau nei $T$ taškų.Procesas kartojamas iki kol gaunama žinutė g arba k.
Po išvesto skaičiaus padėkite naujos eilutės simbolį '\n' C++ ir C kalbose.
Taip pat pasirūpinkite, kad skaičius iš karto pasiektų sistemą. Tam C++ kalboje naudokite cout.flush();, o C kalboje – fflush(stdout);.
Atkreipkite dėmesį, kad C++ kalboje cout << endl; padaro tuos abu dalykus, t. y. padeda naujos eilutės simbolį ir padaro, kad išvesti duomenys iš karto pasiektų sistemą.
| 번호 | 배점 | 제한 |
|---|---|---|
| 1 | 5 | $M = D$ |
| 2 | 22 | $N ≤ 200$ |
| 3 | 19 | $N ≤ 5\, 000$ |
| 4 | 16 | $N ≤ 1\, 000\, 000$ |
| 5 | 38 | Papildomų ribojimų nėra |
10 100 200 1000 d m g
8 5 6
Pradiniai parametrai $N$, $M$, $D$ ir $T$.
Pirmu ėjimu Vytautas spėja $8$.
Spėjimas per didelis, Artūras gauna $200$ taškų.
Vytautas spėja $5$.
Spėjimas per mažas, Artūras gauna $100$ taškų.
Vytautas spėja $6$.
Vytautas atspėjo, gauna $1000$ taškų ir laimi. Artūras surinko $300$.
Olympiad > Lithuanian Olympiad in Informatics > Lithuanian Olympiad in Informatics 2019/2020 > National Round (2) > 10-12 Classes 1번