Universal Cup Judging System

Universal Cup

Time Limit: 6 s Memory Limit: 1024 MB Total points: 100 Difficulty: [show]
Statistics

Dans la province de Plang, $n = 300$ étudiants ont participé à la Plang OI 2026. Parmi eux, certains ont remporté des médailles d'or et d'autres non.

Les étudiants de la province de Plang ont une habitude étrange. S'ils n'ont pas gagné de médaille d'or, ils diront honnêtement qu'ils n'en ont pas gagné. Cependant, s'ils en ont gagné, ils diront qu'ils en ont gagné avec une probabilité $p$, tandis que l'autre probabilité est qu'ils disent qu'ils n'en ont pas gagné. Notez que chaque réponse est aléatoire et n'a aucun lien avec la précédente.

Vous, en tant qu'entraîneur de la province de Plang, voulez savoir pour chaque étudiant s'il a remporté une médaille d'or. Ensuite, vous pouvez demander à Una d'effectuer les actions suivantes :

  • Choisir des étudiants distincts et demander à Una de demander à chacun d'eux s'il a remporté la médaille d'or. Una vous indiquera le nombre de personnes qui ont répondu "Oui".

La ligne de médaille d'or de la Plang OI 2025 est de 571, vous devriez donc trouver la réponse en moyenne en moins de 568 requêtes.

En raison des limitations de la Plang OI, vous pouvez supposer qu'exactement 48 étudiants ont remporté une médaille d'or.

Picture 1: A coach asking a student how many points he has hidden.

Interaction

Ceci est un problème interactif. N'oubliez pas de vider le tampon de sortie après chaque impression. Pour vider votre sortie, vous pouvez utiliser :

  • fflush(stdout) ou cout.flush() en C/C++;
  • System.out.flush() en Java et Kotlin;
  • sys.stdout.flush() en Python.

D'abord, vous devriez lire un entier $T$ ($T = 20$) indiquant le nombre de cas de test.

Pour chaque cas de test, vous devriez lire un entier $n$ ($n = 300$), indiquant le nombre d'étudiants.

Pour faire une requête, vous devriez imprimer une ligne formatée comme "? $k$ $P_1$ $P_2$ ... $P_k$" ($1 \le P_i \le n$, $P_i \ne P_j$ pour $1 < i < j \le k$).

Ensuite, lisez un entier indiquant la réponse trouvée par Una. Si votre requête est invalide, ou si vous effectuez plus de $568T$ requêtes au total, le programme jury imprimera -1. Après avoir lu -1, vous devriez quitter immédiatement pour éviter un comportement indéfini.

Si vous obtenez la réponse, vous devriez imprimer une ligne formatée comme "! $s_1$ $s_2$ ... $s_n$", où $s_i = 1$ indique que le $i$-ème étudiant a obtenu l'or, 0 sinon.

Ensuite, lisez un mot OK ou WA indiquant si votre réponse est correcte. Si votre programme lit WA, vous devriez quitter immédiatement pour éviter un comportement indéfini.

Notez que le jury n'est pas adaptatif, c'est-à-dire que la réponse ne changera pas après vos requêtes. Il y a au plus 10 tests.

Exemples

Entrée 1

1
2
0
0
1

Sortie 1

? 2 1 2
? 1 1
? 1 2
! 0 1

Remarque

Notez que l'exemple est à titre de référence uniquement, il ne satisfait pas $T = 20$ et $n = 300$, et il n'apparaîtra pas dans les tests finaux.

Un outil de test est fourni pour aider les concurrents à développer et tester leurs solutions. Vous pouvez télécharger cet outil à partir des pièces jointes. L'exécution de l'outil avec l'option "-h" devrait décrire comment utiliser l'outil. L'outil de test n'implémentera que certains scénarios de test et seulement certaines fonctionnalités du programme de jury réel.

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.