Snöbollskrig 1 | 프로그래밍의 벗 PivotOJ
PivotOJ

Snöbollskrig 1

시간 제한: 2000ms메모리 제한: 1024MB출처: Programmeringsolympiaden 2017 — finalBOJ 20893

문제

I en oriktad, viktad graf med NN noder leker LL länder snöbollskrig under IOI. I början har varje land ett fort i någon nod.

Vid tid 00 börjar varje land ge sig ut på snöbollskrig. Snöbollskrig fungerar såhär:

  • Om ett land äger ett fort beger sig tävlanden från landet ut längs alla kanter från fortet, alla med samma hastigheter.
  • Om två länder möts längs en kant stannar länderna och krigar (för alltid).
  • Om två länder möts i en nod stannar länderna och krigar (för alltid).
  • Om ett land når en nod där länder redan krigar, går det med i kriget.
  • Om ett land når en nod före något annat land bygger det landet ett fort i noden, och beger sig därefter ut längs kanterna från noden enligt regel 1.

Notera att reglerna medför att högst ett land kan ha ett fort i en viss nod. Om två länder kommer till en nod samtidigt kommer de deltagare som kom till noden stanna där och kriga oändligt länge, utan att bege sig vidare.

Avgör vilka par av länder som kommer kriga mot varandra.

입력

Den första raden innehåller tre heltal N,L,MN,L,M (2N100000,2L50,1M1000002 \le N \le 100\,000, 2 \le L \le 50, 1 \le M \le 100\,000): antal noder, antal länder och antal kanter i grafen, respektive. Därefter följer LL rader med heltal, som säger vilken nod varje lands startbas är på. Sist följer MM rader med vardera tre heltal a,b,wa, b, w (0a,b<N,ab,1w20000 \le a,b < N, a \neq b, 1 \le w \le 2\,000). Detta betyder att det finns en (oriktad) kant mellan noder aa och bb (noll-indexerade), av längd ww.

Det kommer högst finnas en kant mellan varje par av noder, och inga två länder kommer att starta på samma nod.

출력

För varje par av länder a,ba, b som krigar ska du skriva ut en rad a b, där a<ba < b och länderna indexeras från 0. Dessa ska skrivas ut i sorterad ordning, sorterat efter det första indexet först. Om exempelvis L=3L = 3 och alla tre länder krigar ska du skriva ut:

0 1
0 2
1 2

예제

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

입력
4 3 3
0
1
2
0 3 100
1 3 100
2 3 100
출력
0 1
0 2
1 2

예제 3

입력
4 3 3
0
1
2
0 3 100
1 3 100
2 3 1000
출력
0 1
0 2
1 2

예제 4

입력
4 3 3
0
1
2
0 3 100
1 3 1000
2 3 1000
출력
0 1
0 2

예제 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
코드를 제출하려면 로그인하세요.