Los puentes de Enelogonia P51971


Statement
 

pdf   zip

El país de Enelogonia está formado por nn islas unidas por mm puentes bidireccionales, de manera que desde cualquier isla se puede llegar a todas las otras a través de los puentes. Las leyes de Enelogonia prohiben que haya dos o más puentes uniendo las mismas islas, o puentes entre una isla y sí misma.

El gobierno quiere organizar un desfile que pase por todos los puentes exactamente una vez, y que empiece y termine en la capital, que es una isla desconocida para nosotros. El gobierno se ha dado cuenta de que con los puentes que hay actualmente quizá no sea posible organizar tal desfile, por lo que permite construir hasta kk puentes nuevos. Vuestra tarea es decidir qué puentes construir para asegurar que el desfile sea posible.

Entrada

La entrada empieza con nn, mm y kk. Siguen mm pares xx yy que indican que las islas xx e yy estan unidas por un puente. Podéis asumir 4n5004 \le n \le 500, kn1k \ge n - 1, y m+kn(n1)/2m + k \le n(n - 1)/2. Las islas se numeran a partir de 0.

Salida

En la primera línea, escribid el número pp de puentes que se van a crear, entre 0 y kk. Las siguientes pp líneas deben contener dos enteros xx e yy separados por un espacio, indicando entre qué islas se va a crear un puente. Si existe más de una solución, escribid cualquiera de ellas. Si no hay solución posible con kk o menos puentes, la salida tiene que ser una sola linea con un -1. Seguid exactamente el formato indicado.

Puntuación

  • test-1:   Resolver casos con n7n \le 7.

  • test-2:   Resolver casos con nn impar y m+k=n(n1)/2m+k = n(n - 1)/2.

  • test-3:   Resolver todo tipo de casos.

Public test cases
  • Input

    4 3 3
    0 1
    3 2
    1 2
    

    Output

    1
    0 3
    
  • Input

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

    Output

    -1
    
  • Information
    Author
    Cesc Folch
    Language
    Spanish
    Official solutions
    C++
    User solutions