두 왕국과 격리
시간 제한8초메모리 제한512 MB
두 왕국을 잇는 도로 그래프에서 홀짝성 조건을 지키며 닫을 수 있는 도로의 최대 개수와 닫는 순서를 구합니다.
문제
두 왕국 (도시 개)와 (도시 개)가 있고, 양방향 도로가 개 있다. 각 도로는 의 도시 하나와 의 도시 하나를 잇는다. 어떤 두 도시 사이에도 도로는 최대 하나다.
왕국 의 도시는 1번부터 번까지, 왕국 의 도시는 번부터 번까지 번호가 매겨져 있다. 도로는 1번부터 번까지 번호가 매겨져 있으며, 도로 는 도시 와 를 잇는다. 여기서 이고 이다.
한 왕국에 위험한 바이러스가 나타나서, 왕들은 도로 일부를 닫기로 했다.
를 도시 와 다른 도시를 잇는 도로의 처음 개수, 를 도시 와 다른 도시를 잇는 도로 중 아직 열려 있는(닫히지 않은) 도로의 개수라고 하자.
도로 는 닫기 전에 다음 조건을 모두 만족할 때만 닫을 수 있다.
- 이전에 닫힌 적이 없어야 한다.
- 와 의 홀짝이 같아야 한다(둘 다 짝수이거나 둘 다 홀수).
- 와 의 홀짝이 같아야 한다(둘 다 짝수이거나 둘 다 홀수).
닫을 수 있는 도로의 최대 개수를 구하고, 그 최대를 달성하는 닫기 순서를 찾아라.
입력
첫 줄에 세 정수 , , 이 주어진다. 각각 왕국 의 도시 수, 왕국 의 도시 수, 도로 수이다(, ).
이어서 개의 줄에 도로가 주어진다. 번째 줄에는 도로 가 잇는 두 도시 와 가 주어진다(, ). 이면 또는 이다.
출력
첫 줄에 닫을 수 있는 도로의 최대 개수 를 출력한다. 둘째 줄에는 닫는 순서대로 도로 번호 () 개를 출력한다.
최적해가 여러 개라면 그중 아무거나 출력해도 된다.
힌트
첫 번째 예제에서 , , , , 이다. 처음에는 와 가 같으므로 도로 1, 4, 5를 닫을 수 있다.
도로 1을 닫으면 , 이 된다. 도로 4와 5는 여전히 닫을 수 있다. 도로 4를 닫으면 , 이 되어, 다음에 닫을 수 있는 도로는 도로 2뿐이다. 도로 2를 닫으면 , , , , 가 된다. 세 개보다 많이 닫을 수는 없다.