새 관찰
시간 제한3초메모리 제한512 MB
진짜 간선 집합 G와 일부 지름길 간선을 포함하는 방향 그래프 P가 주어질 때, a에서 T로 가는 모든 경로가 간선 (a, T)를 지나는 T의 진입 이웃 a를 모두 구한다.
문제
Kiara는 아주 특이한 방식으로 이동하는 신기한 조류를 연구한다. 이들의 이동은 그래프의 언어로 설명하는 것이 가장 좋다. 노드가 나무인 방향 그래프 가 있고, 새는 가 의 간선일 때에만 나무 에서 로 날아갈 수 있다.
Kiara는 이 새들의 비행을 지배하는 실제 그래프 를 알지 못하지만, 이전 현장 연구에서 많은 새의 이동 데이터를 수집했다. 이를 이용해 새들이 어떻게 움직이는지 설명하는 그래프 를 고안했다. Kiara는 새를 너무 오래 관찰한 나머지, 새가 에서 로 직접 날아갈 수 있다면 그러한 사건을 적어도 한 번 목격했다고 확신한다. 그러나 새가 에서 를 거쳐 로 날아갔는데 그녀가 경유지 와 만 목격하고 를 에 추가했을 가능성이 있다. 새가 에서 를 거쳐 를 거쳐 로 날아갔는데 그녀가 와 만 목격하고 를 에 추가했을 가능성도 있다. 정리하자면, 그녀는 가 의 모든 간선을 포함하며, 에는 에서 에서 로 가는 경로가 존재하는 다른 간선 가 포함되어 있을 수도 있다는 것을 안다(단, 가 그러한 간선을 모두 포함하지는 않을 수 있다).
다음 현장 연구를 위해 Kiara는 주어진 나무 옆에 기지를 설치하기로 했다. 에 새가 도착하는 것을 경고받기 위해, 그녀는 새가 올 수 있는 나무, 즉 에 간선 가 존재하는 나무 에 탐지기를 설치하고 싶어 한다. 탐지기는 저렴하지 않으므로, 그녀는 가 에 속한다고 확신하는 나무 에만 탐지기를 설치하려 한다.
Kiara는 가 의 간선이고 에서 에서 시작해 에서 끝나는 모든 경로가 간선 를 사용할 때, 간선 가 에 속한다고 확신한다. Kiara는 가 의 간선이라고 확신하는 나무 의 집합 를 계산해 달라고 요청한다.
입력
입력은 그래프 를 설명한다. 첫째 줄에는 공백으로 구분된 세 정수 , , 가 주어진다. 은 의 노드 수, 은 의 간선 수, 는 Kiara가 기지를 설치할 나무에 대응하는 노드이다.
다음 개의 줄은 그래프 의 간선을 설명한다. 각 줄에는 공백으로 구분된 두 정수 와 (, )가 주어지며, 임을 나타낸다. 같은 쌍 가 두 번 나타나지 않음이 보장된다.
출력
출력은 집합 를 설명해야 한다. 첫째 줄에는 의 노드 수 이 주어지고, 이어서 개의 줄에 의 서로 다른 원소가 각각 하나씩 주어진다. 의 원소는 증가하는 순서로, 한 줄에 하나씩 출력해야 한다.
제한
- ;
- .