철도 여행 2
시간 제한2초메모리 제한512 MB
각 노선을 역 구간으로 주고 처음 K개 정차역에서만 탈 수 있다는 조건에서, Q개의 여행 각각에 필요한 최소 탑승 횟수를 구하고 불가능하면 -1을 출력한다.
문제
IOI 철도 회사는 하나의 철도 노선 위에서 여러 열차를 운행한다. 일직선 위에 개의 역이 있고, 번부터 번까지 번호가 붙어 있다. 각 ()에 대해 번 역과 번 역은 철도로 직접 연결되어 있다.
IOI 철도 회사는 개의 열차를 운행하며, 번부터 번까지 번호가 붙어 있다. 번 열차 ()의 출발역은 번 역이고 종착역은 번 역이다. 열차는 모든 역에 정차한다. 즉 이면 번 열차는 번 역, 번 역, , 번 역 순서로 정차한다. 이면 번 열차는 번 역, 번 역, , 번 역 순서로 정차한다.
JOI군은 여행자이다. 그는 개의 여행 계획을 세웠다. 번째 계획 ()에서 그는 번 역에서 번 역까지 열차를 갈아타며 이동한다.
그런데 JOI군은 긴 여행에 지쳐 있다. 그는 빈 열차를 타고 자리에 앉고 싶다. 그래서 JOI군은 어떤 역에서 열차를 탈 때, 그 열차의 출발역에서 번째 정차역까지만 탈 수 있기로 했다. 다시 말해 이면 번 열차는 번 역, 번 역, , 번 역에서만 탈 수 있다. 이면 번 열차는 번 역, 번 역, , 번 역에서만 탈 수 있다. JOI군은 탄 역의 다음 역부터 종착역까지 중 한 역에서 내린다.
이 조건에서 JOI군은 열차를 타는 횟수를 최소화하려 한다.
IOI 철도 회사의 열차 정보와 JOI군의 계획이 주어졌을 때, 각 계획마다 JOI군이 그 계획을 달성하는 데 필요한 최소 열차 탑승 횟수를 계산하는 프로그램을 작성하라.
입력
표준 입력에서 다음 데이터를 읽는다. 주어지는 값은 모두 정수이다.
\begin{align\*}\&N\,K \\ \& M \\ \& A\_1\,B\_1 \\ \& A\_2\,B\_2 \\ \& \vdots \\ \& A\_M\,B\_M \\ \& Q \\ \& S\_1\,T\_1 \\ \& S\_2\,T\_2 \\ \& \vdots \\ \& S\_Q\,T\_Q\end{align\*}
출력
표준 출력에 개의 줄을 출력한다. 번째 줄 ()에는 JOI군이 번째 계획을 달성하는 데 필요한 최소 열차 탑승 횟수를 출력한다. 번째 계획을 달성할 수 없으면 -1을 출력한다.
제한
- .
- .
- .
- ().
- ().
- ().
- ().
- .
- ().
- ().
- ().
- ().