Universal Cup Judging System

Universal Cup

実行時間制限: 1 s メモリ制限: 1024 MB
統計

Ce problème est un problème en deux passes (multi-pass).

VegiCat et VegiDog jouent à un jeu avec une forêt de $n$ sommets, numérotés de $1$ à $n$, et $m$ arêtes. Une forêt est un graphe non orienté sans cycle. Elle n'est pas nécessairement connexe.

problem_23600_31ed0f9f305bd48a6d853fa9d86253e5.png

Dans la première phase, VegiCat attribue un entier $a_u$ ($1 \le a_u \le 2n$) à chaque sommet $u$. Les valeurs peuvent se répéter.

Une fois que VegiCat a terminé d'attribuer les valeurs, les sommets sont renumérotés. Soit $p_1, p_2, \ldots, p_n$ une permutation de $1, 2, \ldots, n$, dans laquelle chaque entier de $1$ à $n$ apparaît exactement une fois. Pour chaque $u$, le sommet initialement numéroté $u$ porte désormais le numéro $p_u$.

Chaque arête $(u, v)$ devient $(p_u, p_v)$. Chaque sommet conserve la valeur qui lui a été attribuée. Soit $b_i$ la valeur au sommet $i$ après renumérotation. Alors $b_{p_u} = a_u$.

Dans la seconde phase, VegiDog reçoit uniquement $n$ et $b_1, b_2, \ldots, b_n$, sans la forêt initiale ni $p$. Il doit retrouver toutes les arêtes en utilisant les nouveaux numéros de sommets.

Concevez des stratégies pour les deux joueurs qui fonctionnent pour toute forêt valide et toute permutation $p$.

Entrée

Votre programme sera exécuté deux fois : d'abord dans le rôle de VegiCat, puis dans celui de VegiDog. Les cas de test apparaissent dans le même ordre lors des deux exécutions.

Première exécution. La première ligne contient la chaîne cat, indiquant que vous jouez VegiCat.

La deuxième ligne contient un entier $T$ ($1 \le T \le 10^4$), le nombre de cas de test. La description des cas de test suit.

La première ligne de chaque cas de test contient deux entiers $n$ et $m$ ($1 \le n \le 2 \cdot 10^5$, $0 \le m < n$), le nombre de sommets et d'arêtes.

Chacune des $m$ lignes suivantes contient deux entiers $u$ et $v$ ($1 \le u, v \le n$, $u \ne v$), décrivant une arête non orientée entre les sommets $u$ et $v$.

Il est garanti que le graphe ne comporte ni cycle ni arête multiple.

Il est garanti que la somme de $n$ sur l'ensemble des cas de test ne dépasse pas $2 \cdot 10^5$.

Seconde exécution. La première ligne contient la chaîne dog, indiquant que vous jouez VegiDog.

La deuxième ligne contient un entier $T$ ($1 \le T \le 10^4$), le nombre de cas de test. La description des cas de test suit.

La première ligne de chaque cas de test contient un entier $n$ ($1 \le n \le 2 \cdot 10^5$), le nombre de sommets.

La deuxième ligne contient $n$ entiers $b_1, b_2, \ldots, b_n$ ($1 \le b_i \le 2n$), les valeurs attribuées selon le nouvel ordre des sommets.

Il est garanti que la somme de $n$ sur l'ensemble des cas de test ne dépasse pas $2 \cdot 10^5$.

Sortie

Première exécution. Pour chaque cas de test, affichez $n$ entiers $a_1, a_2, \ldots, a_n$ ($1 \le a_i \le 2n$) sur une seule ligne. L'entier $a_i$ est la valeur attribuée au sommet $i$.

Seconde exécution. Pour chaque cas de test, affichez sur la première ligne un entier $m$, le nombre d'arêtes. Chacune des $m$ lignes suivantes doit contenir deux entiers $u$ et $v$ ($1 \le u, v \le n$, $u \ne v$), décrivant une arête à l'aide des nouveaux numéros de sommets.

Affichez chaque arête une seule fois, dans n'importe quel ordre. N'importe quelle extrémité peut apparaître en premier. Si $m = 0$, affichez uniquement $0$.

Exemples

Entrée 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

Sortie 1

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

Entrée 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

Sortie 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

Remarque

Dans le premier cas de test, la forêt possède un sommet et aucune arête. VegiCat attribue la valeur $1$ au sommet, et VegiDog affiche $0$.

Dans le dernier cas de test, la permutation est $p = [5, 3, 6, 4, 2, 9, 1, 8, 7, 10]$.

VegiCat attribue $a_7 = 16$. Comme $p_7 = 1$, VegiDog reçoit $b_1 = 16$.

L'arête initiale $(3, 7)$ devient $(p_3, p_7) = (6, 1)$.

L'arête initiale $(4, 10)$ devient $(p_4, p_{10}) = (4, 10)$. L'exemple affiche cette arête sous la forme $(10, 4)$, ce qui représente la même arête non orientée.

L'exemple illustre les formats d'entrée et de sortie. Ses sorties sont correctes pour les graphes et permutations présentés. Toutefois, rien ne garantit que les attributions de l'exemple fassent partie d'une stratégie fonctionnant pour toute forêt valide et toute permutation.

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.