만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

배 찾기

시간 제한3초메모리 제한1024 MB

요약
그래프에서 s에서 v까지 최단 경로를 따라 k번 이동했을 때 배가 있을 수 있는 지점을 구합니다.
난이도

보통10점 중 7점

유형
BFS, 그래프, 최단 경로, 트리
정답자
아직 제출이 없습니다

문제

가디언즈 오브 갤럭시는 타노스에게 파괴된 배에서 구조 신호를 받았다. 그들은 가능한 한 빨리 배를 찾아서, 배에 타고 있는 토르를 구해야 한다.

이 배의 이동 방식은 매우 특이하다. 우주에는 1번부터 nn번까지 번호가 붙은 nn개의 지점이 있고, 배는 이 지점들 사이를 이동한다. 또 mm개의 웜홀이 있으며, ii번째 웜홀은 지점 aia_i와 bib_i를 잇는다. 웜홀은 한 지점과 그 자신을 잇을 수도 있고, 두 지점 사이에 웜홀이 둘 이상 있을 수도 있다. 웜홀 하나를 지나는 데는 정확히 1시간이 걸린다.

배는 처음에 지점 ss에 있었다. 가디언즈는 토르가 배를 어느 지점으로 보내려 했지만 도중에 멈춰야 했다고 짐작한다. 그들에게는 qq개의 추측이 있다. ii번째 추측은 다음과 같다. 토르는 지점 ss에서 출발해 지점 viv_i로 가는 최단 경로 중 하나를 따라 움직였다. 그러다 웜홀을 정확히 kik_i번 통과한 뒤 배가 멈추었고, 그 뒤로는 더 움직이지 않았다. 최단 경로는 사용하는 웜홀의 수가 가장 적은 경로이다.

입력

첫 줄에 세 정수 nn, mm, ss가 주어진다. 각각 지점의 수, 웜홀의 수, 출발 지점이다 (1≤n,m≤500001 \le n, m \le 50000; 1≤s≤n1 \le s \le n).

이어지는 mm개의 줄에는 ii번째 웜홀이 잇는 두 지점 aia_i와 bib_i가 주어진다 (1≤ai,bi≤n1 \le a_i, b_i \le n).

다음 줄에는 추측의 수 qq가 주어진다 (1≤q≤500001 \le q \le 50000).

이어지는 qq개의 줄에는 추측된 목적지 viv_i와 토르가 웜홀을 통과한 횟수 kik_i가 주어진다 (1≤vi≤n1 \le v_i \le n; 1≤ki≤m1 \le k_i \le m).

출력

각 추측에 대해 다음 중 하나의 결과를 한 줄에 출력한다.

  • 추측한 상황이 불가능하면 00을 출력한다. 예를 들어 지점 ss에서 viv_i로 가는 경로가 없는 경우이다.
  • 추측한 상황이 가능하고, 그 순간 배가 있을 수 있는 지점이 둘 이상이면 −1-1을 출력한다.
  • 그 밖의 경우에는 추측에 따라 배가 반드시 있어야 하는 지점의 번호를 출력한다.

예제1

  1. 예제 1

    입력
    7 7 1
    1 2
    1 3
    2 4
    3 4
    1 5
    2 6
    4 7
    5
    4 1
    6 1
    7 1
    7 2
    5 2
    
    예상 출력
    -1
    2
    -1
    4
    0