동기화 노드 선정


문제 정보
check포인트 : 1 (부분 점수)
schedule시간 제한 : 1.0s
storage메모리 제한 : 512M
edit_square출제자:
 
답안 제출

분산 기록 시스템에는 1번부터 N번까지 번호가 붙은 노드가 있다. 노드 사이에는 M개의 단방향 전송 채널이 있으며, 어떤 두 노드 사이의 전송 시간은 방향에 따라 다를 수 있다.

K개의 시작 노드가 주어진다. 시스템은 하나의 동기화 노드 X를 선택해, 각 시작 노드가 X로 자료를 보낸 뒤 다시 자기 위치로 결과를 돌려받게 하려고 한다.

어떤 시작 노드의 왕복 시간은 그 시작 노드에서 X까지 가는 최소 시간과 X에서 그 시작 노드까지 돌아가는 최소 시간을 더한 값이다. 동기화 노드 X는 모든 시작 노드에 대해 왕복 경로가 존재해야 한다.

가능한 X 중에서, K개의 왕복 시간 중 최댓값이 최소가 되는 노드를 모두 구하시오. 조건을 만족하는 노드가 적어도 하나 존재함은 보장된다.

입력

첫 번째 줄에는 노드의 개수 N과 전송 채널의 개수 M이 주어진다.

두 번째 줄부터 M+1번째 줄까지는 세 정수 Ai, Bi, Ti가 공백으로 구분되어 주어진다. 이는 Ai번 노드에서 Bi번 노드로 전송하는 데 Ti의 시간이 걸리는 단방향 채널이 있음을 의미한다.

M+2번째 줄에는 시작 노드의 개수 K가 주어진다.

M+3번째 줄에는 K개의 시작 노드 번호 Ci가 공백으로 구분되어 주어진다.

출력

조건을 만족하는 동기화 노드 X의 번호를 출력한다. 가능한 노드가 여러 개라면 번호를 오름차순으로 출력한다.

제한

  • 3 ≤ N ≤ 200
  • 2 ≤ K ≤ N
  • 1 ≤ M ≤ N * (N - 1)
  • 1 ≤ Ci ≤ N
  • 1 ≤ Ti ≤ 1,000

예제 입력 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

예제 출력 1

4

예제 입력 2

3 3
1 2 1
2 3 1
3 1 1
2
1 2

예제 출력 2

1 2 3

댓글

현재 작성된 댓글이 없습니다.