차이 그래프
시간 제한1초메모리 제한32 MB
정점 차이를 N으로 나눈 나머지로 정해지는 간선 가중치를 가진 방향 그래프에서 여러 출발지와 도착지 사이의 최단 경로 길이를 구합니다.
문제
승현이에게 정점이 개인 방향 그래프 와 음이 아닌 정수로 이루어진 배열 이 있습니다. 정점에는 이상 이하의 번호가 붙어 있고, 간선마다 가중치가 있습니다. 처음에는 간선이 하나도 없어서 승현이는 그래프가 허전하다고 느꼈습니다. 그래서 다음과 같은 방법으로 간선을 잇기로 했습니다.
서로 다른 두 정점 와 (, )에 대해
- 이고 가 양수이면, 에서 로 향하는 가중치 인 간선을 추가합니다.
- 이고 이 양수이면, 에서 로 향하는 가중치 인 간선을 추가합니다.
간선을 모두 추가한 뒤, 승현이는 한 정점에서 출발해 다른 정점에 도착하는 최단 경로의 길이를 구하려고 합니다.
입력
첫째 줄에 그래프 의 정점 수 ()이 주어집니다.
둘째 줄에 ()이 공백을 사이에 두고 주어집니다.
셋째 줄에 질의의 수 ()가 주어집니다.
이어지는 개 줄 가운데 번째 줄 ()에는 두 정수 와 (, )가 공백을 사이에 두고 주어집니다.
출력
각 질의마다 번 정점에서 출발해 번 정점에 도착하는 최단 경로의 길이를 입력에 주어진 순서대로 한 줄에 하나씩 출력합니다. 그러한 최단 경로가 없으면 을 출력합니다.