Universal Cup Judging System

Universal Cup

Time Limit: 1 s Memory Limit: 2048 MB Total points: 100 Difficulty: [show] Interactive Hackable ✓
Statistics

Detta är ett interaktivt problem.

Little Cyan Fish har en dold enkel oriktad graf med $n$ hörn, numrerade från $1$ till $n$. Du känner till värdet på $n$, men du känner inte till några av kanterna. Little Cyan Fish älskar begreppet snitt (cut). För en mängd hörn $S$, låt $\operatorname{cut}(S)$ beteckna antalet kanter som har exakt en ändpunkt i $S$.

problem_22880_c88365aab9e24b99bbd5b96995883b80.png

Little Cyan Fish låter dig jämföra snitt genom att ställa frågor. I en fråga väljer du två mängder av hörn $S_1$ och $S_2$. Little Cyan Fish berättar för dig om $\operatorname{cut}(S_1)$ är mindre än, lika med eller större än $\operatorname{cut}(S_2)$.

Du kan förmodligen gissa att nästa mening kommer att handla om att återskapa grafen, men den här gången är uppgiften enklare. Little Cyan Fish ger dig ett hörn $u$, och han vill att du hittar alla hörn som är grannar till $u$ med som mest $n + 10$ frågor.

Indata

Den första raden i indatan innehåller två heltal $n$ och $u$ ($1 \le n \le 1000$, $1 \le u \le n$), som anger antalet hörn respektive det givna hörnet. Därefter börjar interaktionen.

Interaktionsprotokoll

För att ställa en fråga, skriv ut en rad i följande format:

$$?\ s_1\ s_2$$

där $s_1$ och $s_2$ är strängar av längd $n$, som endast består av tecknen 0 och 1. För varje $j \in \{1, 2\}$ tillhör hörnet $i$ mängden $S_j$ om och endast om det $i$:te tecknet i $s_j$ är 1. Mängderna får vara tomma, får överlappa och får vara lika.

Som svar på frågan får du ett enskilt tecken <, =, eller >, vilket betyder att $\operatorname{cut}(S_1)$ är mindre än, lika med respektive större än $\operatorname{cut}(S_2)$. Du måste se till att antalet frågor du ställer inte överstiger $n + 10$.

För att rapportera svaret, skriv ut en rad i följande format:

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

där $k$ ($0 \le k \le n - 1$) är antalet hörn som är grannar till $u$, och $v_1, v_2, \ldots, v_k$ är deras distinkta nummer i valfri ordning. Om $k = 0$, skriv ut ! 0. Att rapportera svaret räknas inte som en fråga. Ditt program måste avslutas omedelbart efter att det har rapporterat svaret.

Efter att ha skrivit ut en fråga eller rapporterat svaret, glöm inte att skriva ut ett radbrytningstecken och tömma utmatningsbufferten (flush). Om du ställer en ogiltig fråga eller överskrider frågegränsen kommer interaktorn att stänga indataströmmen och ditt program måste avslutas.

I det här problemet är interaktorn adaptiv. Det betyder att grafen kan ändras beroende på dina frågor, så länge den inte motsäger något tidigare svar. Ditt svar måste vara korrekt för varje graf som är förenlig med alla svar du har fått.

Exempel

Indata 1

4 1

<

=

<

=

Utdata 1

? 0000 1000

? 0100 1100

? 0010 1010

? 0001 1001

! 2 2 4

Förklaring

En graf som är förenlig med exempelinteraktionen har kanterna $(1, 2)$, $(1, 4)$ och $(2, 3)$.

problem_22880_2dcb0fb296e7aa6b2806ae2a9f6861fe.png

Testverktyg: Ett testverktyg tillhandahålls för att hjälpa tävlande att utveckla och testa sina lösningar. Du kan ladda ner detta verktyg från bilagorna. Kör verktyget med flaggan -h för att visa användningsinstruktioner. Verktyget kontrollerar interaktionen och det rapporterade svaret, men tillämpar inte tids- eller minnesgränsen.

Testverktyget använder en fast graf som anges i dess indatafil under hela interaktionen, medan den officiella interaktorn är adaptiv. Att klara tester med testverktyget garanterar inte att din lösning är korrekt mot den officiella interaktorn.

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.