만드는 중입니다

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

눈덩이 싸움 1

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

요약
가중치가 있는 무향 그래프에서 각 나라의 출발 노드가 주어질 때, 눈덩이 싸움에서 서로 맞붙는 나라의 쌍을 구합니다.
난이도

보통10점 중 7점

유형
그래프, 최단 경로, 시뮬레이션
정답자
아직 제출이 없습니다

문제

NN개의 노드로 이루어진 무방향 가중치 그래프가 있다. IOI 기간에 LL개의 나라가 눈덩이 싸움을 벌인다. 처음에 각 나라는 어느 한 노드에 요새를 하나씩 가진다.

시각 00에 각 나라가 병사를 내보내기 시작한다. 싸움의 규칙은 다음과 같다.

  • 나라가 요새를 가진 노드에서는 그 요새에 연결된 모든 간선을 따라 병사가 같은 속도로 출발한다.
  • 두 나라가 간선 위에서 만나면 두 나라는 멈추고 영원히 싸운다.
  • 두 나라가 노드에서 만나면 두 나라는 멈추고 영원히 싸운다.
  • 나라가 이미 싸움이 벌어지고 있는 노드에 도착하면 그 싸움에 합류한다.
  • 나라가 어떤 노드에 다른 나라보다 먼저 도착하면, 그 나라가 그 노드에 요새를 짓고 규칙 1에 따라 노드의 간선을 따라 병사를 내보낸다.

한 노드에는 요새가 최대 하나만 있다. 두 나라가 같은 시각에 한 노드에 도착하면, 그 노드에 도착한 병사들은 멈춰 그곳에서 영원히 싸우고 더 이상 이동하지 않는다.

싸우게 되는 나라 쌍을 모두 구하라.

입력

첫 줄에 세 정수 N,L,MN, L, M (2≤N≤100 0002 \le N \le 100\,000, 2≤L≤502 \le L \le 50, 1≤M≤100 0001 \le M \le 100\,000)이 주어진다. 각각 노드의 수, 나라의 수, 간선의 수이다. 다음 LL개의 줄에는 각 나라의 시작 노드 번호가 주어진다. 다음 MM개의 줄에는 세 정수 a,b,wa, b, w (0≤a,b<N0 \le a,b < N, a≠ba \neq b, 1≤w≤2 0001 \le w \le 2\,000)가 주어진다. 이는 노드 aa와 bb 사이에 길이가 ww인 무방향 간선이 있다는 뜻이다. 노드 번호는 0부터 시작한다. 두 노드 사이에 간선은 최대 하나만 있으며, 서로 다른 두 나라가 같은 노드에서 시작하지 않는다.

출력

싸우는 나라 쌍 a,ba, b마다 한 줄에 a b를 출력한다. 여기서 a<ba < b이며 나라 번호는 0부터 시작한다. 출력은 첫 번째 번호 기준으로 오름차순이어야 한다. 예를 들어 L=3L = 3이고 세 나라가 모두 싸우면 다음과 같이 출력한다.

0 1
0 2
1 2

예제5

  1. 예제 1

    입력
    8 4 8
    0
    2
    4
    6
    0 1 100
    1 2 100
    2 3 100
    3 4 100
    4 5 100
    5 6 100
    6 7 100
    7 0 1000
    
    예상 출력
    0 1
    0 3
    1 2
    2 3
    
  2. 예제 2

    입력
    4 3 3
    0
    1
    2
    0 3 100
    1 3 100
    2 3 100
    
    예상 출력
    0 1
    0 2
    1 2
    
  3. 예제 3

    입력
    4 3 3
    0
    1
    2
    0 3 100
    1 3 100
    2 3 1000
    
    예상 출력
    0 1
    0 2
    1 2
    
  4. 예제 4

    입력
    4 3 3
    0
    1
    2
    0 3 100
    1 3 1000
    2 3 1000
    
    예상 출력
    0 1
    0 2
    
  5. 예제 5

    입력
    6 4 5
    0
    1
    4
    5
    0 2 10
    1 2 10
    2 3 100
    4 3 700
    5 3 1000
    
    예상 출력
    0 1
    0 2
    1 2
    2 3