OpenKattis
POwarmup23 svår: Grafer

Start

2022-11-10 16:00 CET

POwarmup23 svår: Grafer

End

2022-11-17 16:00 CET
The end is near!
Contest is over.
Not yet started.
Contest is starting in -524 days 21:20:15

Time elapsed

168:00:00

Time remaining

0:00:00

Problem C
Snöbollskrig 1

/problems/snobollskrig1/file/statement/sv/img-0001.jpg
Picture by Manfy (cc-by-sa3.0)
I en oriktad, viktad graf med $N$ noder leker $L$ länder snöbollskrig under IOI. I början har varje land ett fort i någon nod.

Vid tid $0$ 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.

Indata

Den första raden innehåller tre heltal $N,L,M$ ($2 \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 $L$ rader med heltal, som säger vilken nod varje lands startbas är på. Sist följer $M$ rader med vardera tre heltal $a, b, w$ ($0 \le a,b < N, a \neq b, 1 \le w \le 2\, 000$). Detta betyder att det finns en (oriktad) kant mellan noder $a$ och $b$ (noll-indexerade), av längd $w$.

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

Utdata

För varje par av länder $a, b$ som krigar ska du skriva ut en rad a b, där $a < 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 = 3$ och alla tre länder krigar ska du skriva ut: 0 1 0 2 1 2

Förklaring av exempel 1

I detta exempel är grafen en cykel och nästan helt symmetrisk. I fallet mellan land 0 och land 3 kommer kriget utspelas på en kant, medan de 3 andra krigen kommer utspelas på noder.

Poängsättning

Din lösning kommer att testas på en mängd testfallsgrupper. För att få poäng för en grupp så måste du klara alla testfall i gruppen.

Grupp

Poängvärde

Gränser

1

8

Grafen är en linje: kanterna är exakt (0,1), (1,2), etc., (N-2, N-1)

2

9

$L = 2$.

3

24

$w = 1$ för alla kanter.

4

23

Inga krig förekommer på noderna.

5

29

$1 \le N, M \le 2\, 000$.

6

7

Inga begränsningar.

Sample Input 1 Sample Output 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
Sample Input 2 Sample Output 2
4 3 3
0
1
2
0 3 100
1 3 100
2 3 100
0 1
0 2
1 2
Sample Input 3 Sample Output 3
4 3 3
0
1
2
0 3 100
1 3 100
2 3 1000
0 1
0 2
1 2
Sample Input 4 Sample Output 4
4 3 3
0
1
2
0 3 100
1 3 1000
2 3 1000
0 1
0 2
Sample Input 5 Sample Output 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