Tämä on vuorovaikutteinen tehtävä.
Little Cyan Fishillä on salainen kokonaisluku $a$ ($1 \le a \le 100$). Sinun täytyy löytää tämä kokonaisluku.
Yhdessä kyselyssä valitset kokonaisluvun $x$. Little Cyan Fish kertoo sinulle, onko $x$ yhtä suuri kuin hänen salainen kokonaislukunsa. Löydä salainen kokonaisluku enintään $100$ kyselyllä.
Vuorovaikutus
Tehdäksesi kyselyn, tulosta rivi seuraavassa muodossa: "$?\ x$", missä $x$ on kokonaisluku ($1 \le x \le 100$). Vastauksena kyselyyn saat yhden sanan yes tai no, mikä tarkoittaa vastaavasti, että $x = a$ tai $x \ne a$. Sinun on varmistettava, että tekemiesi kyselyiden määrä ei ylitä $100$:aa.
Ilmoittaaksesi vastauksen, tulosta rivi seuraavassa muodossa: "$!\ x$", missä $x$ on salainen kokonaisluku. Vastauksen ilmoittamista ei lasketa kyselyksi. Vastauksen yes saaminen ei päätä vuorovaikutusta: sinun on silti ilmoitettava vastaus. Ohjelmasi on päätyttävä välittömästi vastauksen ilmoittamisen jälkeen. Kun olet tulostanut kyselyn tai ilmoittanut vastauksen, älä unohda tulostaa rivinvaihtomerkkiä ja tyhjentää tulostuspuskuria (flush).
Tässä tehtävässä vuorovaikutusohjelma (interactor) ei ole mukautuva. Salainen kokonaisluku on kiinnitetty ennen vuorovaikutuksen alkua eikä se muutu vuorovaikutuksen aikana.
Esimerkit
Syöte 1
no no yes
Tuloste 1
? 1 ? 2 ? 3 ! 3
Huomautus
Ensimmäisessä esimerkissä salainen kokonaisluku on $3$. Kyselyt arvoilla $x = 1$ ja $x = 2$ saavat vastauksen no, ja kysely arvolla $x = 3$ saa vastauksen yes. Tämän jälkeen ratkaisu ilmoittaa ! 3.
Toisessa esimerkissä salainen kokonaisluku on $1$. Ensimmäinen kysely saa vastauksen yes, ja ratkaisu ilmoittaa ! 1.
Testaustyökalu: Kilpailijoiden avuksi ratkaisujen kehittämiseen ja testaamiseen on tarjolla testaustyökalu. Voit ladata tämän työkalun liitteistä. Työkalun suorittaminen valitsimella -h kuvaa, kuinka sitä käytetään. Työkalu tarkistaa vuorovaikutuksen ja ilmoitetun vastauksen, mutta ei valvo aika- tai muistirajaa.