Enunț
Ai observat o bombă care stă să explodeze! Bomba are fire, numerotate de la la . Pentru a o dezamorsa, trebuie să tai fiecare fir exact odată, într-un interval de secunde (secundele ). În fiecare secundă, trebuie să tai exact un fir.
Cerință
Din păcate, firele nu pot fi tăiate în orice ordine. Există anumite instrucțiuni tehnice pe care trebuie să le respecți pentru a nu declanșa explozia. Vei primi instrucțiuni de tipul , unde:
- : Firul trebuie tăiat înainte de firul .
- : Firul trebuie tăiat după firul .
- : Firul trebuie tăiat cel mai devreme la secunda ().
- : Firul trebuie tăiat cel mai târziu la secunda ().
Găsește o ordine în care tai cele fire astfel încât să dezamorsezi bomba!
Date de intrare
Pe prima linie a fișierului de intrare bomba.in se găsesc două numere întregi, (numărul de fire) și (numărul de instrucțiuni). Pe următoarele linii se găsesc instrucțiunile, sub forma a trei numere întregi .
Date de ieșire
Pe prima linie a fișierului de ieșire bomba.out se va găsi o permutare a numerelor de la la , reprezentând ordinea în care trebuie tăiate firele. Dacă există mai multe soluții, se poate afișa oricare. În cazul în care nu există nicio ordine care să respecte toate instrucțiunile, se va afișa mesajul Imposibil.
Restricții și precizări
- ;
- ;
- Se garantează că pentru toate testele, valorile de timp din instrucțiunile de tip 3 și 4 sunt în intervalul .
- O ordine de tăiere este o permutare , unde este firul tăiat la secunda .
- (firul este tăiat la secunda ).
Subtask-uri și punctare
| Subtask | Punctaj | Restricții suplimentare |
|---|---|---|
| 0 | 0 | Exemple |
| 1 | 10 | , |
| 2 | 15 | Există doar instrucțiuni de tip 1 și 2 |
| 3 | 15 | Există doar instrucțiuni de tip 3 și 4 |
| 4 | 10 | , ; Fiecare fir apare în cel mult o instrucțiune de tip 1 sau 2 |
| 5 | 15 | , |
| 6 | 15 | Fiecare fir apare în cel mult o instrucțiune de tip 1 sau 2 |
| 7 | 20 | Fără restricții suplimentare |
- Restricția „Fiecare fir apare în cel mult o instrucțiune de tip 1 sau 2” înseamnă că numărul total de apariții ale unui fir în toate instrucțiunile de tip 1 și 2 la un loc este de maximum 1. În schimb, un fir poate apărea de oricâte ori în instrucțiunile de tip 3 și 4.
Exemplul 1
bomba.in
5 4
1 1 2
1 2 3
3 4 4
4 5 2
bomba.out
5 1 2 4 3
Explicație
Ai 5 fire. Firul 1 trebuie tăiat înaintea lui 2, iar 2 înaintea lui 3. Firul 4 se taie minim la secunda 4, iar firul 5 maxim la secunda 2. O ordine validă este 5 1 2 4 3.
Exemplul 2
bomba.in
6 6
1 1 2
1 2 3
1 4 5
1 5 6
3 1 3
3 4 3
bomba.out
Imposibil
Explicație
Nu ai suficiente secunde la dispoziție pentru a tăia toate firele fără să încalci vreo regulă.