경로 동일성
시간 제한1초메모리 제한1024 MB
N과 M이 주어졌을 때, 정점 N개로 이루어진 방향 그래프(자기 자신으로 가는 간선 허용)에서 모든 정점 쌍 사이의 길이 2인 경로가 정확히 M개가 되도록 간선을 만들거나, 불가능하면 -1을 출력합니다.
문제
마을 개로 이루어진 나라 X가 있다. 각 마을에는 번부터 번까지 순서대로 번호가 붙어 있다. X의 지도자가 신뢰하는 브레인 중 한 명인 준원이는 지금 어려운 상황에 놓여 있다. 준원이는 각 마을 사이를 잇는 여러 개의 일방통행 도로를 건설해야 한다. 한 마을 에서 다시 로 가는 도로도 존재할 수 있고, 마을 , 에 대해 에서 로 가는 도로는 최대 하나다. 마을 에서 로 가는 도로 역시 최대 하나다. 준원이는 특정 마을끼리만 협력하는 일을 막고 모든 마을이 함께 친목을 도모하도록 다음 조건을 만족하는 도로를 설계하고자 한다. 조건: 임의의 두 마을 , 에 대하여 에서 로 가는 길이가 2인 서로 다른 경로의 개수가 정확히 개이다. 단, 와 는 같은 마을일 수 있다. 주어진 과 에 대하여 준원이가 조건을 만족하도록 도로를 설계할 수 있는지 판별하고, 가능하다면 그렇게 할 수 있는 방법을 하나 제시하자.
입력
첫째 줄에 과 이 차례대로 주어진다. , 이다.
출력
목표가 달성 가능하다면 그 예시를 다음 형식으로 출력하여라. 첫째 줄에는 준원이가 건설해야 하는 도로의 개수 를 출력한다. 두 번째 줄부터 번째 줄까지는, 번째 줄에 번째 도로의 출발 마을과 도착 마을의 번호를 순서대로 출력한다. 목표가 달성 불가능하면 을 출력하여라.