소방서

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

요약
가중치가 있는 도시 그래프와 기존 소방서가 주어질 때, 모든 교차로에서 가장 가까운 소방서까지의 거리 중 최댓값을 가장 작게 만드는 교차로를 고른다.
난이도

보통10점 중 7점

유형
그래프, 최단 경로, 완전 탐색
정답자
아직 제출이 없습니다

문제

어떤 도시에는 여러 개의 소방서가 있다. 일부 주민들이 집에서 가장 가까운 소방서까지의 거리가 너무 멀다고 불평하여, 도시는 소방서를 하나 더 짓기로 했다. 주민들이 가장 가까운 소방서까지 가는 거리가 최대한 짧아지도록 새 소방서를 지을 위치를 정하라.

도시에는 교차로가 최대 500500개 있으며, 교차로들은 길이가 서로 다른 양방향 도로 구간으로 연결되어 있다. 한 교차로에서 만나는 도로 구간은 최대 2020개이다. 모든 집과 소방서는 교차로에 있다고 보며(교차로에서 실제 건물까지의 이동 거리는 무시한다), 모든 교차로에는 집이 적어도 하나 있다. 한 교차로에 소방서가 둘 이상 있을 수도 있다.

입력

첫째 줄에 두 양의 정수 ff와 ii가 주어진다. ff는 기존 소방서의 개수(f≤100f \le 100), ii는 교차로의 개수(i≤500i \le 500)이다. 교차로는 11번부터 ii번까지 번호가 매겨져 있다.

다음 ff개의 줄에는 각각 기존 소방서가 있는 교차로의 번호가 하나씩 주어진다.

그 다음 줄들에는 각각 세 양의 정수 aa, bb, dd가 주어지며, 서로 다른 두 교차로 aa와 bb를 잇는 길이 dd의 도로 구간을 나타낸다. 모든 도로는 양방향이며, 임의의 두 교차로 사이에는 서로 이동할 수 있는 경로가 존재한다.

출력

새 소방서를 지었을 때, 모든 교차로에서 가장 가까운 소방서까지의 거리 중 최댓값이 가장 작아지도록 하는 새 소방서의 교차로 번호를 출력한다. 그러한 교차로가 여러 개이면 그중 가장 작은 번호를 출력한다.

예제1

  1. 예제 1

    입력
    1 6
    2
    1 2 10
    2 3 10
    3 4 10
    4 5 10
    5 6 10
    6 1 10
    
    예상 출력
    5