Universal Cup Judging System

Universal Cup

Time Limit: 1 s Memory Limit: 1024 MB
Statistics

Questo è un problema multi-pass (a due esecuzioni).

VegiCat e VegiDog giocano a un gioco con una foresta di $n$ vertici, numerati da $1$ a $n$, e $m$ archi. Una foresta è un grafo non orientato privo di cicli. Non è necessariamente connessa.

problem_23600_31ed0f9f305bd48a6d853fa9d86253e5.png

Nella prima fase, VegiCat assegna un intero $a_u$ ($1 \le a_u \le 2n$) a ciascun vertice $u$. I valori possono ripetersi.

Dopo che VegiCat ha terminato di assegnare i valori, i vertici vengono rinumerati. Sia $p_1, p_2, \ldots, p_n$ una permutazione di $1, 2, \ldots, n$, in cui ogni intero da $1$ a $n$ compare esattamente una volta. Per ciascun $u$, il vertice originariamente numerato $u$ ora riceve il numero $p_u$.

Ogni arco $(u, v)$ diventa $(p_u, p_v)$. Ciascun vertice mantiene il valore che gli è stato assegnato. Sia $b_i$ il valore nel vertice $i$ dopo la rinumerazione. Allora $b_{p_u} = a_u$.

Nella seconda fase, VegiDog riceve solamente $n$ e $b_1, b_2, \ldots, b_n$, senza conoscere la foresta originale o $p$. Deve ricostruire tutti gli archi utilizzando i nuovi numeri dei vertici.

Progetta strategie per entrambi i giocatori che funzionino per ogni foresta valida e per ogni permutazione $p$.

Input

Il tuo programma verrà eseguito due volte: prima nel ruolo di VegiCat, poi nel ruolo di VegiDog. I casi di test compaiono nello stesso ordine in entrambe le esecuzioni.

Prima esecuzione. La prima riga contiene la stringa cat, che indica che giochi come VegiCat.

La seconda riga contiene un intero $T$ ($1 \le T \le 10^4$), il numero di casi di test. Segue la descrizione dei casi di test.

La prima riga di ciascun caso di test contiene due interi $n$ e $m$ ($1 \le n \le 2 \cdot 10^5$, $0 \le m < n$), il numero di vertici e di archi.

Ciascuna delle successive $m$ righe contiene due interi $u$ e $v$ ($1 \le u, v \le n$, $u \ne v$), che descrivono un arco non orientato tra i vertici $u$ e $v$.

È garantito che il grafo non contenga cicli né archi multipli.

È garantito che la somma di $n$ su tutti i casi di test non supera $2 \cdot 10^5$.

Seconda esecuzione. La prima riga contiene la stringa dog, che indica che giochi come VegiDog.

La seconda riga contiene un intero $T$ ($1 \le T \le 10^4$), il numero di casi di test. Segue la descrizione dei casi di test.

La prima riga di ciascun caso di test contiene un intero $n$ ($1 \le n \le 2 \cdot 10^5$), il numero di vertici.

La seconda riga contiene $n$ interi $b_1, b_2, \ldots, b_n$ ($1 \le b_i \le 2n$), i valori assegnati secondo il nuovo ordine dei vertici.

È garantito che la somma di $n$ su tutti i casi di test non supera $2 \cdot 10^5$.

Output

Prima esecuzione. Per ciascun caso di test, stampa $n$ interi $a_1, a_2, \ldots, a_n$ ($1 \le a_i \le 2n$) su una riga. L'intero $a_i$ è il valore assegnato al vertice $i$.

Seconda esecuzione. Per ciascun caso di test, stampa sulla prima riga un intero $m$, il numero di archi. Ciascuna delle successive $m$ righe deve contenere due interi $u$ e $v$ ($1 \le u, v \le n$, $u \ne v$), che descrivono un arco utilizzando i nuovi numeri dei vertici.

Stampa ciascun arco una sola volta, in qualsiasi ordine. Uno qualsiasi dei due estremi può essere stampato per primo. Se $m = 0$, stampa solo $0$.

Esempi

Input 1

cat
4
1 0
4 3
1 2
4 3
2 3
7 2
6 4
7 1
10 7
10 9
7 9
10 5
4 8
3 7
4 10
1 2

Output 1

1
2 5 8 5
11 11 4 11 3 7 2
10 13 12 5 3 2 16 6 19 3

Input 2

dog
4
1
1
4
5 2 5 8
7
11 7 2 11 11 3 4
10
16 3 13 5 10 12 19 6 2 3

Output 2

0
3
1 4
2 1
4 3
2
4 3
5 2
7
1 7
4 8
5 3
6 1
7 10
10 2
10 4

Note

Nel primo caso di test, la foresta ha un solo vertice e nessun arco. VegiCat assegna il valore $1$ al vertice, e VegiDog stampa $0$.

Nell'ultimo caso di test, la permutazione è $p = [5, 3, 6, 4, 2, 9, 1, 8, 7, 10]$.

VegiCat assegna $a_7 = 16$. Poiché $p_7 = 1$, VegiDog riceve $b_1 = 16$.

L'arco originale $(3, 7)$ diventa $(p_3, p_7) = (6, 1)$.

L'arco originale $(4, 10)$ diventa $(p_4, p_{10}) = (4, 10)$. L'esempio stampa questo arco come $(10, 4)$, che rappresenta lo stesso arco non orientato.

L'esempio illustra i formati di input e di output. I suoi output sono corretti per i grafi e le permutazioni mostrati. Tuttavia, non è garantito che le assegnazioni dell'esempio facciano parte di una strategia valida per ogni foresta valida e ogni permutazione.

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.