#1363
Gold III
컴퓨터 네트워크
시간 제한
1s
메모리 제한
512MB
제출
1
정답
1
맞힌 사람
1
정답 비율
100.0%

문제

NN개의 컴퓨터가 있다. 컴퓨터끼리 통신을 해야 하는데, 사용하는 프로토콜이 같은 컴퓨터끼리만 통신할 수 있다. 프로토콜의 종류로는 총 MM개가 있고 각 컴퓨터가 사용하는 프로토콜의 개수는 11개 이상이다.

예를 들어 11번 컴퓨터는 11, 22 프로토콜을 사용하고, 22번 컴퓨터는 2,32, 3번 프로토콜을, 33번 컴퓨터는 33번 프로토콜을 사용한다고 가정해 보자. 11번 컴퓨터와 22번 컴퓨터는 22번 프로토콜을 사용하여 직접 통신할 수 있다. 반면 11번 컴퓨터와 33번 컴퓨터는 11번에서 22번으로, 22번에서 33번으로 총 11번 다른 컴퓨터를 거쳐야 서로 통신할 수 있다.

민용이는 문득 두 컴퓨터가 통신하기 위해 거쳐야 하는 다른 컴퓨터의 최소 개수를 구하고 싶어졌다. 민용이의 궁금증을 해결해 주자!

입력

첫째 줄에 NNMM이 공백으로 구분되어 주어진다. (2N,M10002\le N, M\le 1\,000)

둘째 줄부터 NN개의 줄에 걸쳐, 각 줄에 순서대로 ii번 컴퓨터가 사용하는 프로토콜이 주어진다. 처음 주어지는 정수는 ii번 컴퓨터가 사용하는 프로토콜의 개수 CiC_i이고, 다음 CiC_i개의 정수는 ii번 컴퓨터가 사용하는 프로토콜 번호 PP가 공백으로 구분되어 주어진다. (1Ci,PM;1\le C_i, P\le M;)

셋째 줄에 민용이의 질문 QQ가 주어진다. (1Q5000001\le Q\le 500\,000)

넷째 줄부터 QQ개의 줄에 걸쳐, 각 줄에 두 정수 xx, yy가 주어진다. 두 컴퓨터가 통신을 하기 위해 거쳐야 하는 최소 컴퓨터의 개수를 구해야 한다. (1x,yN;xy1\le x, y\le N; x\neq y)

출력

각 줄에 두 컴퓨터가 통신을 하기 위해 거쳐야 하는 다른 컴퓨터의 최소 개수를 출력한다. 만약 두 컴퓨터가 통신을 할 수 없다면 대신 -1를 출력한다.

예제 입력 1

4 4
2 1 2
2 2 3
1 3
1 4
3
1 2
3 1
2 4

예제 출력 1

0
1
-1
문제를 만든 사람
조서현
알고리즘 분류
코드 제출

코드를 제출하려면 로그인이 필요합니다.

로그인
내 제출
제출 내역이 없습니다.
맞은 사람
#순위사용자언어시간메모리코드 길이
8647🥇
조서현
PyPy531ms90496KB787B
난이도 투표
Gold III1명 투표· 6일 전
로그인 후 AC 받으면 투표할 수 있습니다.
전체 제출
#사용자문제결과언어시간메모리코드 길이제출 시간
8647
맞았습니다
PyPy531ms90496KB787B2026. 05. 31. 07:17