신촌 길찾기 서비스

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

요약
N개 정류장에 5개 대학이 각각 X개 노선을 지정할 때, 정류장 U에서 V로 가는 데 필요한 최소 버스 노선 수를 각 질문마다 구하거나 불가능하면 -1을 출력한다.
난이도

보통10점 중 7점

유형
그래프, BFS, 해시맵
정답자
아직 제출이 없습니다

문제

신촌의 다섯 대학교인 서강대, 숙명여대, 연세대, 이화여대, 홍익대는 학생들의 원활한 교통을 위한 버스 사업을 운영하고 있다. 각 대학교에는 11번부터 XX번까지 총 XX개의 버스 노선이 존재한다. 서로 다른 대학교가 운영하는 동일한 번호의 버스 노선은 서로 다른 버스 노선이므로, 현재 신촌에는 총 5X5X개의 버스 노선이 존재한다.

신촌에는 NN개의 버스 정류장이 있다. 각 대학교는 NN개의 버스 정류장에 각 대학교가 운영하는 버스 노선 중 하나를 지정하여 운행한다. 버스 정류장은 11번부터 NN번까지 번호가 매겨져 있으며, ii번 정류장을 지나는 버스 노선의 번호는 서강대, 숙명여대, 연세대, 이화여대, 홍익대 순으로 각각 A_iA\_i, B_iB\_i, C_iC\_i, D_iD\_i, E_iE\_i이다. 노선의 운영 상태에 따라 11개의 정류장만 지나는 노선이나, 정류장이 지정되지 않아 운영하지 않는 노선이 존재할 수 있다. 학생들은 특정 버스를 타면 그 버스가 속한 노선에 있는 다른 정류장 중 아무 정류장에서 내릴 수 있다.

여러분은 신촌의 버스 노선 정보를 활용하여 최소 환승 경로를 계산하는 신촌 길찾기 서비스를 개발하고 있다. 아래의 질문 QQ개에 대한 답을 출력하시오.

  • UU번 정류장에서 VV번 정류장으로 이동하기 위해 이용해야 하는 버스 노선은 최소 몇 개인지 출력하시오. 만약 이동할 수 없다면 -1을 출력하시오.

입력

첫 번째 줄에는 정류장의 수 NN, 각 대학교의 버스 노선의 수 XX가 공백으로 구분되어 주어진다. (2≤N≤100,000;(2 \leq N \leq 100\\,000; 1≤X≤100)1 \leq X \leq 100)

다음 NN개의 줄에 걸쳐, ii번째 줄에 ii번 정류장을 지나는 버스 노선의 정보를 의미하는 A_iA\_i, B_iB\_i, C_iC\_i, D_iD\_i, E_iE\_i가 공백으로 구분되어 주어진다. (1≤A_i,B_i,C_i,D_i,E_i≤X)(1 \leq A\_i, B\_i, C\_i, D\_i, E\_i \leq X)

다음 줄에는 질문의 수 QQ가 주어진다. (1≤Q≤100,000)(1 \leq Q \leq 100\\,000)

다음 QQ개의 줄에 걸쳐, ii번째 줄에 ii번째 질문에 대한 정보로 시작 정류장과 도착 정류장의 번호를 의미하는 U_iU\_i, V_iV\_i가 공백으로 구분되어 주어진다. (1≤U_i,V_i≤N;(1 \leq U\_i, V\_i \leq N; U_i≠V_i)U\_i \neq V\_i)

출력

각 질문에 대한 답을 QQ개의 줄에 걸쳐 순서대로 출력한다.

예제2

  1. 예제 1

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

    입력
    5 5
    2 2 1 5 2
    4 3 5 5 1
    4 1 4 4 3
    4 3 3 3 3
    3 2 3 2 5
    3
    5 2
    1 4
    5 3
    
    예상 출력
    2
    2
    2