Ceci est un problème interactif.
Little Cyan Fish a un entier secret $a$ ($1 \le a \le 100$). Vous devez trouver cet entier.
Lors d'une requête, vous choisissez un entier $x$. Little Cyan Fish vous indique si $x$ est égal à son entier secret. Trouvez l'entier secret en au plus $100$ requêtes.
Interaction
Pour effectuer une requête, affichez une ligne au format suivant : « $?\ x$ », où $x$ est un entier ($1 \le x \le 100$). En réponse à la requête, vous recevrez un seul mot yes ou no, signifiant respectivement que $x = a$ ou $x \ne a$. Vous devez vous assurer que le nombre de requêtes que vous effectuez ne dépasse pas $100$.
Pour annoncer la réponse, affichez une ligne au format suivant : « $!\ x$ », où $x$ est l'entier secret. L'annonce de la réponse ne compte pas comme une requête. Recevoir yes ne met pas fin à l'interaction : vous devez tout de même annoncer la réponse. Votre programme doit se terminer immédiatement après avoir annoncé la réponse. Après avoir affiché une requête ou annoncé la réponse, n'oubliez pas d'afficher un caractère de saut de ligne et de vider le tampon de sortie (flush).
Dans ce problème, l'interacteur n'est pas adaptatif. L'entier secret est fixé avant le début de l'interaction et ne change pas au cours de l'interaction.
Exemples
Entrée 1
no no yes
Sortie 1
? 1 ? 2 ? 3 ! 3
Remarque
Dans le premier exemple, l'entier secret est $3$. Les requêtes avec $x = 1$ et $x = 2$ reçoivent no, et la requête avec $x = 3$ reçoit yes. La solution annonce ensuite ! 3.
Dans le second exemple, l'entier secret est $1$. La première requête reçoit yes, et la solution annonce ! 1.
Outil de test : Un outil de test est fourni pour aider les participants à développer et tester leurs solutions. Vous pouvez télécharger cet outil depuis les pièces jointes. L'exécution de l'outil avec l'option -h décrit comment l'utiliser. L'outil vérifie l'interaction et la réponse annoncée, mais n'applique pas la limite de temps ou de mémoire.