QOJ.ac

QOJ

Time Limit: 2.0 s Memory Limit: 256 MB Total points: 100 Hackable ✓

#17746. Surveillance des castors

Statistics

L'infrastructure technologique des castors industrieux surveillés (MITIT) est composée de $N$ castors numérotés de $1$ à $N$. Il existe $M$ paires de castors $(u_i, v_i)$, où initialement, le castor $u_i$ est responsable de la surveillance du castor $v_i$. Chaque castor est surveillé par au moins un autre castor.

Busy Beaver, le gestionnaire de MITIT, souhaite reconfigurer ces relations de surveillance. En une opération, il peut choisir une paire $(u, v)$ où le castor $u$ surveille actuellement le castor $v$ et faire en sorte que le castor $v$ surveille le castor $u$ à la place. Cependant, il doit s'assurer que chaque castor est surveillé par au moins un autre castor à tout moment.

La configuration finale souhaitée par Busy Beaver peut être décrite par une chaîne $d$ de longueur $M$, où $d_i = 0$ si le castor $u_i$ surveille le castor $v_i$ à la fin et $d_i = 1$ si le castor $v_i$ surveille le castor $u_i$ à la fin. Trouvez une séquence d'opérations la plus courte possible pour atteindre cette configuration finale, ou indiquez qu'il est impossible d'y parvenir.

Entrée

Chaque test contient plusieurs cas de test. La première ligne contient le nombre de cas de test $T$ ($1 \le T \le 10^4$). La description des cas de test suit.

La première ligne de chaque cas de test contient deux entiers $N$ et $M$ ($3 \le N \le M \le 10^5$).

La $i$-ième des $M$ lignes suivantes contient deux entiers $u_i$ et $v_i$ ($1 \le u_i, v_i \le N, u_i \ne v_i$). Il n'existe pas de $1 \le i < j \le M$ tel que $(u_i, v_i) = (u_j, v_j)$ ou $(u_i, v_i) = (v_j, u_j)$.

La ligne suivante contient une chaîne $d_1 \dots d_M$, où $d_i \in \{0, 1\}$ pour tout $1 \le i \le M$.

Il est garanti que dans les configurations initiale et finale, chaque castor est surveillé par au moins un autre castor.

Il est garanti que la somme de $N$ sur tous les cas de test ne dépasse pas $10^5$.

Il est garanti que la somme de $M$ sur tous les cas de test ne dépasse pas $10^5$.

Sortie

Pour chaque cas de test, si la tâche est impossible, affichez un seul entier $-1$.

Sinon, affichez d'abord un entier $K$, le nombre d'opérations effectuées. Sur la ligne suivante, affichez $K$ entiers $a_1, \dots, a_K$ ($1 \le a_i \le M$), indiquant que votre solution effectue les opérations sur $(u_{a_i}, v_{a_i})$ dans l'ordre.

Barème

Pour obtenir tous les points, $K$ doit toujours être le nombre minimal possible d'opérations. Sinon, vous recevrez $50 \%$ des points pour chaque sous-tâche si vous affichez correctement une séquence valide d'opérations où la somme de $K$ sur tous les cas de test ne dépasse pas $10^6$.

  • ($50$ points) $M \le 300$.
  • ($50$ points) Aucune contrainte supplémentaire.

Example

Entrée 1

3
4 5
1 2
2 3
3 1
1 4
4 3
11000
6 6
1 2
2 3
3 1
4 5
5 6
6 4
111111
3 3
1 2
2 3
3 1
000

Sortie 1

2
2 1 
-1
0

Note

Les opérations du premier cas de test sont illustrées ci-dessous. Notez que l'exécution des opérations dans l'ordre inverse n'est pas acceptable car le castor $2$ doit être surveillé à tout moment.

Dans le deuxième cas de test, il n'est pas possible d'atteindre la configuration finale.

Dans le troisième cas de test, aucune opération ne doit être effectuée.

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.