QOJ.ac

QOJ

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

#17746. Monitoreo de castores

Statistics

La Infraestructura Tecnológica de Castores Industriosos Monitoreados (MITIT, por sus siglas en inglés) está compuesta por $N$ castores numerados del $1$ al $N$. Existen $M$ pares de castores $(u_i, v_i)$, donde inicialmente el castor $u_i$ es responsable de monitorear al castor $v_i$. Cada castor es monitoreado por al menos otro castor.

Busy Beaver, el gerente de MITIT, desea reconfigurar estas relaciones de monitoreo. En una operación, puede tomar un par $(u, v)$ donde el castor $u$ actualmente monitorea al castor $v$ y hacer que el castor $v$ monitoree al castor $u$ en su lugar. Sin embargo, debe asegurarse de que cada castor sea monitoreado por al menos otro castor en todo momento.

La configuración final deseada por Busy Beaver puede describirse mediante una cadena $d$ de longitud $M$, donde $d_i = 0$ si el castor $u_i$ monitorea al castor $v_i$ al final, y $d_i = 1$ si el castor $v_i$ monitorea al castor $u_i$ al final. Encuentre la secuencia más corta de operaciones necesaria para alcanzar esta configuración final, o informe si es imposible.

Entrada

Cada prueba contiene múltiples casos de prueba. La primera línea contiene el número de casos de prueba $T$ ($1 \le T \le 10^4$). A continuación sigue la descripción de los casos de prueba.

La primera línea de cada caso de prueba contiene dos enteros $N$ y $M$ ($3 \le N \le M \le 10^5$).

La $i$-ésima de las siguientes $M$ líneas contiene dos enteros $u_i$ y $v_i$ ($1 \le u_i, v_i \le N, u_i \ne v_i$). No existen $1 \le i < j \le M$ tales que $(u_i, v_i) = (u_j, v_j)$ o $(u_i, v_i) = (v_j, u_j)$.

La siguiente línea contiene una cadena $d_1 \dots d_M$, donde $d_i \in \{0, 1\}$ para todo $1 \le i \le M$.

Se garantiza que, tanto en la configuración inicial como en la final, cada castor es monitoreado por al menos otro castor.

Se garantiza que la suma de $N$ en todos los casos de prueba no supera $10^5$.

Se garantiza que la suma de $M$ en todos los casos de prueba no supera $10^5$.

Salida

Para cada caso de prueba, si la tarea es imposible, imprima un único entero $-1$.

De lo contrario, imprima primero un entero $K$, el número de operaciones utilizadas. En la siguiente línea, imprima $K$ enteros $a_1, \dots, a_K$ ($1 \le a_i \le M$), representando que su solución realiza operaciones sobre $(u_{a_i}, v_{a_i})$ en orden.

Puntuación

Para obtener el puntaje completo, $K$ siempre debe ser el número mínimo posible de operaciones. De lo contrario, recibirá el $50\%$ de los puntos de cada subtarea si imprime correctamente cualquier secuencia válida de operaciones donde la suma de $K$ en todos los casos de prueba no supere $10^6$.

  • ($50$ puntos) $M \le 300$.
  • ($50$ puntos) Sin restricciones adicionales.

Ejemplos

Entrada 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

Salida 1

2
2 1
-1
0

Nota

Las operaciones en el primer caso de prueba se muestran a continuación. Tenga en cuenta que realizar las operaciones en el orden opuesto no es aceptable porque el castor $2$ debe ser monitoreado en todo momento.

En el segundo caso de prueba, no es posible alcanzar la configuración final.

En el tercer caso de prueba, no es necesario realizar ninguna operación.

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.