무전기
시간 제한1초메모리 제한128 MB
평면 위의 철도망에서 두 기관차가 항상 거리 d 이내를 유지해야 할 때, Sławek이 도달할 수 있는 모든 도시를 구한다.
문제
미렉과 스와벡은 최근 국영 철도에 기관사로 채용되었다. 첫 출근 날, 두 사람은 흥미로운 과제를 받는다. 각자 미리 정해진 도시에서 출발하여, 자신의 기관차로 가능한 한 많은 도시를 지나가야 한다.
미렉은 기관차 운전 경험이 있어 무엇도 두렵지 않다. 하지만 스와벡은 처음이라 혼자서는 기관차로 아무것도 하지 못한다. 다행히 모든 기관차에는 무전기가 달려 있어서, 두 사람이 무전기 통신 범위 안에 있는 동안에는 미렉이 스와벡에게 지시를 내릴 수 있다.
도시는 평면 위의 점으로 나타낸다. 일부 도시 쌍은 선로로 연결되어 있는데, 선로란 두 점을 잇는 선분이다. 미렉과 스와벡은 서로 킬로미터 이하로 떨어진 도시에서 출발한다.
기관차는 선로 위를 어느 방향으로든, 어떤 속도로든 달릴 수 있으며(원하는 지점에서 멈출 수도 있다), 다른 선로로 갈아타는 것은 오직 도시에서만 가능하다. 또한 미렉과 스와벡은 항상 서로 킬로미터 이하로 떨어져 있어야 한다.
위 규칙에 따라 스와벡이 방문할 수 있는 모든 도시를 찾는 프로그램을 작성하여라. 프로그램은 다음을 수행한다.
- 표준 입력에서 철도망의 정보, 수 , 그리고 미렉과 스와벡의 출발 위치를 읽는다.
- 스와벡이 도달할 수 있는 도시들을 찾는다.
- 결과를 표준 출력에 쓴다.
입력
첫째 줄에 정수 과 (, ), 그리고 실수 (, 는 소수점 아래 최대 두 자리)가 주어진다. 각각 도시의 수, 선로 구간의 수, 무전기 통신 범위(킬로미터)를 뜻한다. 도시는 번부터 번까지 번호가 매겨져 있다. 이어지는 개의 줄에는 각 도시의 좌표 와 ()가 주어진다. 그다음 개의 줄은 선로망을 나타내며, 각 줄에는 하나의 선로 구간으로 연결된 두 도시의 번호가 주어진다. 마지막 줄에는 미렉과 스와벡이 출발하는 도시의 번호가 이 순서대로 주어진다. 이 두 도시는 서로 킬로미터 이하로 떨어져 있다.
출력
스와벡이 도달할 수 있는 도시들의 번호를 출력한다. 번호는 오름차순으로 정렬하여 한 줄에 하나씩 출력한다.