Cereal 2.


Submit solution

Points: 100 (partial)
Time limit: 1.0s
Memory limit: 128M

Author:
Problem types
Allowed languages
C, C++, Java, Pascal, Python, VB

No hay nada que les guste más a las vacas del Granjero Juan que el cereal para el desayuno. De hecho, las vacas tienen apetitos tan grandes que cada una comerá una caja entera de cereal en una sola comida.

La granja ha recibido recientemente un cargamentos con M tipos diferentes de cereal (2 \leq M \leq 10^5). Desafortunadamente, solamente hay una caja de cada cereal. Cada una de las N vacas (1 \leq N \leq 10^5) tiene un cereal favorito y un segundo cereal favorito. Cuando se le da a una vaca una selección de cereales para elegir un cereal una vaca ejecuta el siguiente proceso:

  1. Si la caja de su cereal favorito está aún disponible, tomarla y salir.
  2. En otro caso, si la caja de su segundo cereal favorito está aún disponible, tomarla y salir.
  3. En otro caso, ella dirá moo con desagrado y saldrá sin tomar ningún cereal.

Encontrar el número mínimo de vacas que se irán con hambre si usted las permuta óptimamente. También, halle cualquier permutación de las N vacas que consiga este mínimo.

Entrada

La primera línea contiene dos enteros separados por espacio N y M. Para cada 1 \leq i \leq N , la línea i-ésima contiene dos enteros separados por espacio f_i y s_i (1 \leq f_i, s_i \leq M, y ,f_i \neq s_i) denotando el primer y segundo cereal favorito de la vaca i-ésima.

Salida

Imprima el número mínimo de vacas que quedan con hambre, seguido por cualquier permutación de 1...N que logre este mínimo. Si hay varias permutaciones, cualquiera será aceptada.

Ejemplo de Entrada

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

Ejemplo de Salida

1
1
3
2
8
4
6
5
7

Explicación

En este ejemplo, hay 8 vacas y 10 tipos de cereal.

Note que podemos resolver efectivamente las tres vacas de manera independiente de las últimas cinco, desde que no tienen cereales favoritos en común.

Si las tres primeras vacas eligen en el orden [1,2,3], entonces la vaca 1 elegirá el cereal 2, la vaca 2 elegirá el cereal 3, y la vaca 3 se irá con hambre.

Si las primeras tres vacas eligen en el orden [1,3,2], entonces la vaca 1 elegirá el cereal 2, la vaca 3 elegirá el cereal 3, y la vaca 2 elegirá el cereal 4, ninguna de esas vacas se irá con hambre.

Por supuesto, hay otras permutaciones que producen que ninguna de las tres vacas se vaya con hambre. Por ejemplo, si las primers tres vaca eligen en el orden [3,1,2] entonces la vaca 3 elegirá el cereal 2, la vaca 1 elegirá el cereal 1, y la vaca 2 elegirá el cereal 3; nuevamente ninguna de las vacas [1,2,3] se irá con hambre.

Se puede demostrar que de las cinco vacas restantes, al menos una debe irse con hambre.


Comments

There are no comments at the moment.