과도한 출구
면접 대비시간 제한2초메모리 제한512 MB
방향 그래프가 주어질 때, 남은 그래프에 방향 순환이 없도록 전체 간선의 절반 이하를 골라 삭제하는 문제입니다.
문제
당신은 Boogie Always Persists Club이라는 디스코 클럽을 운영한다. 이 클럽은 서로 연결된 여러 개의 방에서 춤추고 소리지를 수 있는 것으로 유명하다. 방과 방 사이의 복도는 미로 같은 구조를 이루고 있으며, 보너스로 모든 복도를 일방통행으로 만들었다. 그러나 모든 사람이 당신만큼 클럽에 만족하는 것은 아니었다. 최근 소방 안전 검사관이 방문했는데, 그들이 본 것에 전혀 웃지 않았다. 방 중 하나에서 불이 나면 사람들이 비상구를 찾기 어려워하고 심지어 빙빙 돌며 뛰어다닐 수도 있다는 것이다. 검사관은 이를 용납할 수 없다고 판단하고 가능한 한 빨리 개선하라고 명령한다. 검사관은 방 사이의 복도 일부를 제거해서 클럽 안에서 아무도 빙빙 돌며 뛰어다닐 수 없도록 해야 한다고 주장한다.
반면 당신은 방의 매력을 유지하고 싶다. 복도를 너무 많이 제거하면 사람들이 더 이상 클럽을 찾지 않을 것이기 때문이다. 당신은 복도의 최대 절반까지 제거해도 된다고 결정한다.
클럽의 배치가 주어졌을 때, 사이클이 남지 않도록 복도의 최대 절반을 제거하라.
입력
- 한 줄에 방의 수 와 복도의 수 가 주어진다.
- 그다음 개의 줄이 주어지며, 각 줄에는 서로 다른 1부터 시작하는 두 정수 와 가 주어진다. 이는 방 에서 방 로 가는 복도를 나타낸다. 방에서 자기 자신으로 가는 복도는 없으며, 한 방에서 다른 한 방으로 가는 복도가 두 개 이상 있는 경우도 없다.
출력
- 첫 줄에 제거할 복도의 수 를 정수로 출력한다.
- 그다음 개의 줄에 제거해야 하는 복도의 1부터 시작하는 번호를 출력한다. 이렇게 하면 디스코에서 더 이상 빙빙 돌며 춤출 수 없게 된다.
유효한 답이 여러 개라면 그중 아무거나 출력해도 된다.
예제
예제는 별도로 제공된다.