Universal Cup Judging System

Universal Cup

حد الوقت: 1 s حد الذاكرة: 2048 MB مجموع النقاط: 100 الصعوبة: [عرض] تفاعلية قابلة للهجوم ✓
الإحصائيات

Ceci est un problème interactif.

Little Cyan Fish possède un graphe non orienté simple caché comportant $n$ sommets, numérotés de $1$ à $n$. Vous connaissez la valeur de $n$, mais vous ne connaissez aucune des arêtes. Little Cyan Fish adore le concept de coupe (cut). Pour un ensemble de sommets $S$, soit $\operatorname{cut}(S)$ le nombre d'arêtes ayant exactement une extrémité dans $S$.

problem_22880_c88365aab9e24b99bbd5b96995883b80.png

Little Cyan Fish vous permet de comparer des coupes en effectuant des requêtes. Lors d'une requête, vous choisissez deux ensembles de sommets $S_1$ et $S_2$. Little Cyan Fish vous indique si $\operatorname{cut}(S_1)$ est strictement inférieur, égal ou strictement supérieur à $\operatorname{cut}(S_2)$.

Vous pouvez probablement deviner que la suite parlera de reconstruire le graphe, mais cette fois-ci la tâche est plus simple. Little Cyan Fish vous donne un sommet $u$, et il veut que vous trouviez tous les sommets adjacents à $u$ en au plus $n + 10$ requêtes.

Entrée

La première ligne de l'entrée contient deux entiers $n$ et $u$ ($1 \le n \le 1000$, $1 \le u \le n$), indiquant respectivement le nombre de sommets et le sommet donné. Ensuite, l'interaction commence.

Interaction

Pour effectuer une requête, affichez une ligne au format suivant :

$$?\ s_1\ s_2$$

où $s_1$ et $s_2$ sont des chaînes de caractères de longueur $n$, composées uniquement des caractères 0 et 1. Pour chaque $j \in \{1, 2\}$, le sommet $i$ appartient à $S_j$ si et seulement si le $i$-ème caractère de $s_j$ est 1. Les ensembles peuvent être vides, peuvent se chevaucher et peuvent être égaux.

En réponse à la requête, vous recevrez un seul caractère <, =, ou >, signifiant que $\operatorname{cut}(S_1)$ est respectivement strictement inférieur, égal ou strictement supérieur à $\operatorname{cut}(S_2)$. Vous devez vous assurer que le nombre de requêtes que vous effectuez ne dépasse pas $n + 10$.

Pour rapporter la réponse, affichez une ligne au format suivant :

$$!\ k\ v_1\ v_2\ \dots\ v_k$$

où $k$ ($0 \le k \le n - 1$) est le nombre de sommets adjacents à $u$, et $v_1, v_2, \ldots, v_k$ sont leurs numéros distincts dans n'importe quel ordre. Si $k = 0$, affichez ! 0. Rapporter la réponse ne compte pas comme une requête. Votre programme doit se terminer immédiatement après avoir rapporté la réponse.

Après avoir affiché une requête ou rapporté la réponse, n'oubliez pas d'afficher un caractère de retour à la ligne et de vider le tampon de sortie (flush). Si vous effectuez une requête invalide ou dépassez la limite de requêtes, l'interacteur fermera le flux d'entrée et votre programme devra se terminer.

Dans ce problème, l'interacteur est adaptatif. Cela signifie que le graphe peut changer en fonction de vos requêtes, tant qu'il ne contredit aucune réponse précédente. Votre réponse doit être correcte pour tout graphe cohérent avec toutes les réponses que vous avez reçues.

Exemples

Entrée 1

4 1

<

=

<

=

Sortie 1

? 0000 1000

? 0100 1100

? 0010 1010

? 0001 1001

! 2 2 4

Remarque

Un graphe cohérent avec l'interaction de l'exemple possède les arêtes $(1, 2)$, $(1, 4)$ et $(2, 3)$.

problem_22880_2dcb0fb296e7aa6b2806ae2a9f6861fe.png

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. Exécutez l'outil avec l'option -h pour afficher les instructions d'utilisation. L'outil vérifie l'interaction et la réponse rapportée, mais n'impose pas les limites de temps ou de mémoire.

L'outil de test utilise un graphe fixe spécifié dans son fichier d'entrée tout au long de l'interaction, tandis que l'interacteur officiel est adaptatif. Réussir les tests avec l'outil de test ne garantit pas que votre solution soit correcte face à l'interacteur officiel.

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.