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

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

가운데에서 만나기

면접 대비

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

요약
가중치가 있는 방향 그래프와 K개의 출발 도시가 주어질 때, 각 출발 도시에서 X까지 갔다가 돌아오는 왕복 시간의 최댓값을 최소로 만드는 모든 도시 X를 찾아 오름차순으로 출력한다.
난이도

보통10점 중 6점

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

문제

준형이는 내일 친구들을 만나기로 했다. 준형이와 친구들은 서로 다른 도시에 살고 있다.

도시를 연결하는 도로는 일방 통행만 있어서 도시 AiA_i에서 도시 BiB_i로 가는 시간과 도시 BiB_i에서 도시 AiA_i로 가는 시간이 다를 수 있다.

준형이와 친구들은 아래 조건을 만족하는 도시 XX를 선택하여 거기서 만나려고 한다.

  • 왕복시간은 자신이 살고 있는 도시에서 도시 XX로 이동하는 시간과 도시 XX에서 다시 자신이 살고 있는 도시로 이동하는 시간을 합한 것이다.
  • 준형이와 친구들이 도로를 이용하여 갈 수 있는 도시만 선택한다.
  • 준형이와 친구들의 왕복시간 들 중 최대가 최소가 되는 도시 XX를 선택한다.
  • 준형이와 친구들이 이동할 수 있는 도시가 최소한 하나 이상이 있음을 보장한다.

도시가 많다보니 계산하기 힘들다. 준형이와 친구들을 대신하여 도시 XX를 알려주자.

입력

첫 번째 줄에는 도시의 개수 NN과 도로의 개수 MM이 주어진다.

두 번째 줄부터 M+1M + 1줄까지 도시 AiA_i, 도시 BiB_i, 도시 AiA_i에서 도시 BiB_i로 이동하는데 걸리는 시간 TiT_i가 공백으로 구분되어 주어진다.

M+2M + 2줄에는 준형이와 친구들의 총 인원 KK가 주어진다.

M+3M + 3줄에는 준형이와 친구들이 살고 있는 도시의 번호 CiC_i가 공백으로 구분되어 주어진다.

출력

위 조건을 만족하는 도시 XX의 번호를 출력한다. 만약 가능한 도시 XX가 여러 개인 경우는 도시의 번호를 오름차순으로 출력한다.

제한

  • 3≤N≤2003 \le N \le 200
  • 2≤K≤N2 \le K \le N
  • 1≤M≤N×(N−1)1 \le M \le N \times (N - 1)
  • 1≤Ci≤N1 \le C_i \le N
  • 1≤T≤1,0001 \le T \le 1,000

예제2

  1. 예제 1

    입력
    4 9
    1 2 9
    2 3 9
    3 1 9
    1 4 1
    4 1 1
    2 4 1
    4 2 1
    3 4 1
    4 3 1
    3
    1 2 3
    
    예상 출력
    4
    
  2. 예제 2

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