Vrei să faci ,,buffer overflow'' sau să ,,refulezi tamponul''?
După ce s-au întors din vacanță, prieteni trebuie să refuleze între ei datoriile acumulate de-a lungul concediului.
Se dau prieteni și relații de tipul , ce reprezintă că prietenul cu indicele îi plătește celui cu indicele suma de Vbucks (cea mai stabilă monedă la momentul actual). Din cauză că multe astfel de plăți sunt redundante, găsiți o altă mulțime de maxim relații care este echivalentă cu cea originală.
Problema ar fi simplă dacă ne-am opri aici, dar din păcate, după o excursie, au apărut anumite relații de dușmănie între cei prieteni. Mai exact, se mai dau perechi de prieteni (sau mai bine zis, foști prieteni) care nu vor să își transfere bani unul altuia (în plățile finale echivalente, nu îi poate plăti lui și nici vice-versa).
Totuși, este posibil să nu existe nicio mulțime de relații care să satisfacă și echivalența cu cele inițiale, și restricțiile impuse de relațiile de dușmanie. Dacă acesta este cazul, afișați .
Date de intrare
Pe prima linie se află două numere întregi și - numărul de prieteni și numărul de relații.
Pe următoarele linii se află câte trei numere întregi - reprezentând cele relații inițiale.
Pe următoarea linie se află un singur - numărul de relații de dușmănie.
Pe următoarele linii relațiile de dușmănie ăparute în excursie .
Date de ieșire
Dacă nu există soluție care să satisfacă enunțul, pe prima linie afișați . Altfel, pe prima linie veti afisa numarul de tranzactii finale , unde , iar pe urmatoarele linii se vor afla afla platile.
Restricții și precizări
- Două mulțimi de relații se consideră echivalente dacă după ce s-ar achita toate plățile, fiecare prieten ar pierde / câștiga la fel de mulți bani
- ;
- ;
- ;
- ;
- ;
- .
Punctare
# | Punctaj | Restricții |
---|---|---|
0 | 0 | Exemplele |
1 | 30 | |
2 | 20 | |
3 | 50 | Fără alte restricții |
Exemplul 1
stdin
6 6
4 5 34
1 3 98
1 2 41
2 3 20
5 6 35
4 6 37
11
2 4
3 4
5 6
1 4
1 2
2 6
3 6
3 5
1 6
2 5
1 5
stdout
4
3 2 21
1 3 139
5 4 1
4 6 72
Exemplul 2
stdin
5 8
1 3 38
2 5 9
1 2 21
4 5 76
3 5 12
1 5 48
2 3 43
1 4 46
7
3 5
1 5
2 4
1 3
2 5
1 4
1 2
stdout
-1