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

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

허들 넘기

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

요약
가중치가 있는 방향 그래프에서 T개의 질의마다 s에서 e로 가는 경로 중 간선 가중치의 최댓값을 가장 작게 만드는 값을 구하고, 도달할 수 없으면 -1을 출력한다.
난이도

보통10점 중 6점

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

문제

허들 국가대표를 꿈꾸는 연두는 그래프 위에서 허들 넘기를 연습하려고 한다. 연두가 연습할 그래프는 정점이 N개 있고, 간선이 M개 있다. 간선은 방향성이 있어, 1에서 2로 가는 길이 있더라도 2에서 1로 가는 길은 없을 수도 있다. 간선 위에는 허들이 중간에 놓여 있고, 간선을 지나갈 때는 반드시 허들을 넘어야 한다.

연두는 연습을 T번 할 것이고, 각 연습마다 출발 정점과 도착 정점을 미리 정해놓았다. 연두가 힘들지 않게 연습을 하기 위해, 각 연습마다 출발 정점에서 도착 정점으로 가는 경로 중에서 가장 높이가 높은 허들의 높이가 최소가 되는 것을 찾아보자.

입력

첫째 줄에 세 정수 N, M, T가 주어진다. 다음 M개의 줄에 그래프 간선의 정보 u, v, h가 주어지고, u에서 v로 가는 간선이 있고, 높이가 h인 허들이 간선 중간에 놓여 있다는 의미이다. 마지막 T개의 줄에는 연습의 정보 s, e가 한 줄에 하나씩 주어진다. s는 출발 정점, e는 도착 정점을 의미한다.

출력

입력으로 주어진 연습마다 한 줄에 하나씩 출발 정점에서 도착 정점으로 가는 경로 중 가장 높은 허들 높이의 최솟값을 출력한다. 만약 출발 정점에서 도착 정점으로 갈 수 없는 경우 -1을 출력한다.

제한

  • 1 ≤ N ≤ 300
  • 1 ≤ M ≤ 25,000
  • 1 ≤ T ≤ 40,000
  • 1 ≤ u, v ≤ N
  • u ≠ v
  • 1 ≤ h ≤ 1,000,000
  • 1 ≤ s, e ≤ N
  • s ≠ e

예제1

  1. 예제 1

    입력
    5 6 3
    1 2 12
    3 2 8
    1 3 5
    2 5 3
    3 4 4
    2 4 8
    3 4
    1 2
    5 1
    
    예상 출력
    4
    8
    -1