아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

씨씨

면접 대비

시간 제한2초메모리 제한256 MB

요약
두 사람 사이의 친밀도가 k라는 정보 M개가 주어질 때, Q개의 질의에 대해 두 사람 사이의 거리를 구하고 알 수 없으면 -1을 출력한다.
난이도

보통10점 중 6점

유형
그래프, 최단 경로, 정렬, 구현
정답자
아직 제출이 없습니다

문제

성씨가 '씨'인 혈통은 전 세계에 총 N명이 있다. 2019년 5월 11일, '씨'씨 혈통의 모든 사람이 한자리에 모인 날이다.

하지만 누군가에게는 괴로운 날이다. 성씨가 씨이고 이름이 씨인 '씨씨'는 모임이 끝나면 '씨'씨 혈통의 족보를 완성해야 한다.

'씨'씨 혈통의 모든 사람은 시크릿하기 때문에 자신을 직접 소개하기를 무척 꺼린다. 족보를 완성해야 하는 '씨씨'는 총 M개의 대화를 엿들어 두 사람이 부르는 호칭을 듣고 그 촌수를 알아낼 수 있었다.

내일은 큰 어르신께서 족보를 인쇄하기 전에 검사하러 오실 예정인데, 어떤 사람 a와 b가 몇 촌인지 빠르게 맞춰야 검사를 통과할 수 있다. 편의상 사람은 번호로 나타내며, 오늘 모임에 참석한 순서대로 1번부터 N번까지 있다.

만약 검사를 하나라도 통과하지 못한다면 가문에서 쫓겨날 위기에 처해 있다. 아직 모든 연결 관계를 외우지 못한 '씨씨'는 이대로라면 위험하다. '씨씨'가 Q번의 검사를 모두 통과할 수 있도록 도와주자.

입력

첫째 줄에 이 성씨의 인구 N과 엿들은 대화의 수 M이 주어진다. (2 ≤ N ≤ 200, 1 ≤ M ≤ 20,000)

다음 M개의 줄에 걸쳐 두 사람 a와 b, 그리고 두 사람의 촌수 k가 주어진다. (1 ≤ a, b ≤ N, 1 ≤ k ≤ 10)

같은 대화를 여러 번 들을 수도 있으며, 자기 자신과 대화하는 혼잣말을 엿듣는 경우는 없다. (대화 중에 두 사람의 촌수가 변하는 경우는 없다.)

검사 횟수 Q가 주어지고, 다음 Q(1 ≤ Q ≤ 100,000)개의 줄에 촌수를 맞춰야 하는 두 사람 x, y (x≠y)가 주어진다

출력

Q개의 줄에 걸쳐, 각 검사의 정답을 출력한다. 촌수를 알 수 없는 경우에는 -1을 출력한다.

예제1

  1. 예제 1

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