축지법

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

요약
정점이 10억 개까지 있고 간선은 2000개뿐인 그래프에서, 연결 성분 사이는 1분 만에 순간이동할 수 있지만 같은 성분 안에서는 금지될 때 두 지점 사이의 최단 시간을 50만 개 질의에 답한다.
난이도

어려움10점 중 8점

유형
그래프, BFS, 유니온 파인드, 최단 경로
정답자
아직 제출이 없습니다

문제

A씨는 출근 시간 심각한 교통 체증에 골머리를 앓고 있다. A씨의 활동 범위에는 11번부터 NN번까지 NN개의 지점과 서로 다른 두 지점을 잇는 MM개의 양방향 도로가 있다. 각 도로를 지나는 데는 11분이 걸린다.

훌륭한 도술가 A씨는 축지법을 써서 각 지점에서 원하는 지점으로 11분 만에 이동할 수 있다. 하지만 현재 지점에서 00개 이상의 도로를 거쳐 도착할 수 있는 지점의 경우, 축지법으로 즉시 이동하는 것을 새치기로 간주하여 도술가 윤리 강령에서 엄격히 금하고 있다.

출발점과 도착점이 QQ쌍 주어질 때, 각 쌍마다 출발점에서 도착점으로 이동하는 데 걸리는 최소 시간을 구해 보자.

입력

첫 번째 줄에 지점의 수 NN과 도로의 수 MM, 질문의 수 QQ가 공백으로 구분되어 주어진다. (2≤N≤1092 \le N \le 10^9; 1≤M≤2,0001 \le M \le 2\\,000; 1≤Q≤5×1051 \le Q \le 5 \times 10^5)

다음 MM개의 줄에 걸쳐 한 줄에 하나씩 각 도로 양 끝 지점의 번호 uu, vv가 공백으로 구분되어 주어진다. (1≤u<v≤N1 \le u \lt v \le N) 어떤 두 도로도 양 끝 지점이 모두 같지 않다.

다음 QQ개의 줄에 걸쳐 한 줄에 하나씩 출발점의 번호 ss와 도착점의 번호 ee가 공백으로 구분되어 주어진다. (1≤s,e≤N1 \le s, e \le N)

출력

각 쌍마다 출발점에서 도착점으로 이동하는 데 걸리는 최소 시간을 한 줄에 하나씩 QQ줄에 걸쳐 출력한다.

예제1

  1. 예제 1

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