만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

섬 여행

면접 대비

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

요약
각 정점에 높이가 있는 무방향 그래프에서 질의 (A, K)마다 A에서 정확히 K번 이동해 도달할 수 있는 정점 중 최소 높이를 구하고, 불가능하면 -1을 출력한다.
난이도

보통10점 중 6점

유형
그래프, 동적 계획법, BFS, 행렬
정답자
아직 제출이 없습니다

문제

여행이 취미이자 특기인 정우는 이번에 여러 섬을 돌아보기로 했다. 목적지로 잡은 섬은 모두 NN개이고, 섬 사이에는 양방향으로 건널 수 있는 다리가 MM개 놓여 있다. 다리를 한 번 건너는 것을 이동 한 번으로 센다.

지도에 적힌 섬의 높이를 보던 정우는 이런 궁금증이 생겼다.

"어떤 섬 AA에서 출발해 다리를 정확히 KK번 건넜을 때, 도착할 수 있는 섬 중에서 가장 낮은 섬의 높이는 얼마일까?"

같은 다리를 여러 번 건너도 되고, 이미 지나온 섬에 다시 들러도 된다. 정우의 질의마다 답을 구해 주자.

입력

첫째 줄에 섬의 수 NN과 다리의 수 MM이 공백으로 구분되어 주어진다. (2≤N≤1002 \le N \le 100, 1≤M≤100001 \le M \le 10000)

둘째 줄에 1번 섬부터 NN번 섬까지의 높이 HH가 공백으로 구분되어 주어진다. (0≤H≤100000 \le H \le 10000)

다음 MM개의 줄에 다리 하나를 나타내는 두 정수 XX와 YY가 공백으로 구분되어 주어진다. (1≤X,Y≤N1 \le X, Y \le N) XX번 섬과 YY번 섬이 양방향 다리로 이어져 있다는 뜻이다. XX와 YY가 같을 수 있고, 같은 두 섬을 잇는 다리가 여러 번 주어질 수도 있다.

그다음 줄에 질의의 수 TT가 주어진다. (1≤T≤100001 \le T \le 10000)

이어지는 TT개의 줄에 출발하는 섬의 번호 AA와 건너야 하는 다리의 수 KK가 공백으로 구분되어 주어진다. (1≤A≤N1 \le A \le N, 1≤K≤5001 \le K \le 500)

출력

질의마다 한 줄에 하나씩, AA번 섬에서 출발해 다리를 정확히 KK번 건넜을 때 도착할 수 있는 섬의 높이 중 가장 낮은 값을 출력한다.

정확히 KK번 건너서 도착할 수 있는 섬이 하나도 없으면 −1-1을 출력한다.

예제1

  1. 예제 1

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