Universal Cup Judging System

Universal Cup

Süre Sınırı: 1 s Bellek Sınırı: 2048 MB Toplam puan: 100 Zorluk: [göster] Etkileşimli Hack'lenebilir ✓
İstatistikler

Questo è un problema interattivo.

Little Cyan Fish ha un grafo non orientato semplice nascosto con $n$ vertici, numerati da $1$ a $n$. Conosci il valore di $n$, ma non conosci nessuno degli archi. Little Cyan Fish adora il concetto di taglio (cut). Per un insieme di vertici $S$, sia $\operatorname{cut}(S)$ il numero di archi con esattamente un estremo in $S$.

problem_22880_c88365aab9e24b99bbd5b96995883b80.png

Little Cyan Fish ti permette di confrontare i tagli effettuando delle query. In una query, scegli due insiemi di vertici $S_1$ e $S_2$. Little Cyan Fish ti dice se $\operatorname{cut}(S_1)$ è minore, uguale o maggiore di $\operatorname{cut}(S_2)$.

Probabilmente puoi prevedere che il seguito riguarderà il recupero del grafo, ma questa volta il compito è più semplice. Little Cyan Fish ti dà un vertice $u$ e vuole che tu trovi tutti i vertici adiacenti a $u$ in al massimo $n + 10$ query.

Input

La prima riga dell'input contiene due interi $n$ e $u$ ($1 \le n \le 1000$, $1 \le u \le n$), che indicano rispettivamente il numero di vertici e il vertice dato. Successivamente, inizia l'interazione.

Protocollo di interazione

Per effettuare una query, stampa una riga nel seguente formato:

$$?\ s_1\ s_2$$

dove $s_1$ e $s_2$ sono stringhe di lunghezza $n$, composte solo dai caratteri 0 e 1. Per ogni $j \in \{1, 2\}$, il vertice $i$ appartiene a $S_j$ se e solo se l'$i$-esimo carattere di $s_j$ è 1. Gli insiemi possono essere vuoti, possono sovrapporsi e possono essere uguali.

Come risposta alla query, riceverai un singolo carattere <, = oppure >, che significa rispettivamente che $\operatorname{cut}(S_1)$ è minore, uguale o maggiore di $\operatorname{cut}(S_2)$. Devi assicurarti che il numero di query effettuate non superi $n + 10$.

Per comunicare la risposta, stampa una riga nel seguente formato:

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

dove $k$ ($0 \le k \le n - 1$) è il numero di vertici adiacenti a $u$, e $v_1, v_2, \ldots, v_k$ sono le loro etichette distinte in qualsiasi ordine. Se $k = 0$, stampa ! 0. Comunicare la risposta non conta come una query. Il tuo programma deve terminare immediatamente dopo aver comunicato la risposta.

Dopo aver stampato una query o comunicato la risposta, non dimenticare di stampare un carattere di ritorno a capo e di svuotare il buffer di output (flush). Se effettui una query non valida o superi il limite di query, l'interattore chiuderà il flusso di input e il tuo programma dovrà terminare.

In questo problema, l'interattore è adattivo. Ciò significa che il grafo può cambiare a seconda delle tue query, purché non contraddica alcuna risposta precedente. La tua risposta deve essere corretta per ogni grafo coerente con tutte le risposte che hai ricevuto.

Esempi

Input 1

4 1

<

=

<

=

Output 1

? 0000 1000

? 0100 1100

? 0010 1010

? 0001 1001

! 2 2 4

Nota

Un grafo coerente con l'interazione di esempio ha gli archi $(1, 2)$, $(1, 4)$ e $(2, 3)$.

problem_22880_2dcb0fb296e7aa6b2806ae2a9f6861fe.png

Strumento di test: Viene fornito uno strumento di test per aiutare i concorrenti a sviluppare e testare le proprie soluzioni. Puoi scaricare questo strumento dagli allegati. Esegui lo strumento con l'opzione -h per visualizzare le istruzioni d'uso. Lo strumento verifica l'interazione e la risposta comunicata, ma non applica i limiti di tempo o di memoria.

Lo strumento di test utilizza un grafo fisso specificato nel suo file di input durante tutta l'interazione, mentre l'interattore ufficiale è adattivo. Superare i test con lo strumento di test non garantisce che la tua soluzione sia corretta rispetto all'interattore ufficiale.

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.