În cel mai recent eveniment al companiei Tesla, Paul Musk a anunțat un nou produs inovativ: parcarea autonomă. Fiind cunoscut pentru lansările produselor incomplete, nici parcarea nu este completă, fiind nevoie de o automatizare pentru a atribui câte un loc mașinilor care vor să folosească parcarea. Parcarea este formată din N
locuri, numerotate de la 1
la N
, și este deschisă timp de T
secunde, începând cu secunda 1
. Pe parcursul zilei, sosesc M
mașini care vor să folosească parcarea, pentru fiecare dintre acestea știindu-se timpul de sosire s[i]
și timpul de plecare p[i]
. Mașinile vin în ordinea timpului de sosire s[i]
și ocupă locul de parcare în intervalul de timp [ s[i], p[i] ]
. Pentru fiecare dintre acestea, trebuie să afișați un loc liber de parcare (dacă sunt mai multe, se poate afișa oricare) în care aceasta se poate așeza sau -1
dacă parcarea este plină în momentul venirii mașinii. Dacă o mașină nu are loc în parcare la timpul de sosire, aceasta nu va mai intra în parcare la niciun timp viitor.
Cerința
La final, Paul este interesat de mașinile care mai sunt rămase în parcare la închiderea parcării, de aceea vă cere să afișați configurația parcării la timpul T
.
Date de intrare
Pe prima linie a fișierului de intrare parcare.in
se găsesc trei numere întregi N, M
și T
, reprezentând numărul de locuri din parcare, numărul de mașini care vin să folosească parcarea, respectiv numărul de secunde pentru care este deschisă parcarea. Următoarele M
linii conțin fiecare câte două numere întregi s[i], p[i]
, reprezentând venirea unei mașini la secunda s_i
care va pleca la secunda p_i
. Mașinile apar în fișierul de intrare în ordine crescătoare după timpul de sosire s_i
.
Date de ieșire
În fișierul de ieșire parcare.out
se vor afișa M + 1
linii în total, primele M
linii conținând fiecare câte un număr întreg între 1
și N
reprezentând locul de parcare pe care îl va ocupa mașina, sau -1
dacă nu există niciun loc de parcare disponibil.
Ultima linie va conține N
numere întregi, reprezentând configurația parcării la închidere, unde cel de-al i
-lea număr reprezintă timpul de sosire al mașinii de pe locul de parcare i
, sau -1
dacă locul de parcare i
este gol.
Restricții și precizări
1 ≤ N, M, T ≤ 200.000
1 ≤ s[i] ≤ T
1 ≤ s[i] < p[i] ≤ 200.000
- Considerând următoarele
2M
valori:s[1], s[2], ..., s[M], p[1], p[2], ..., p[M]
, acestea sunt distincte două câte două. - Dacă există mai multe soluții, se poate afișa oricare dintre acestea.
- Datorită dimensiunilor mari, nu au putut fi adăugate toate testele.
Exemplu:
parcare.in
2 4 6 1 3 2 10 4 6 5 8
parcare.out
2 1 2 -1 2 -1
Explicație
Prima mașină sosește în secunda 1
și este parcată pe locul 2
. A doua mașină sosește în secunda 2
și este parcată pe locul 1
. În secunda 3
se eliberează locul 2
. Cea de-a treia mașină sosește în secunda 4
și ocupă locul 2
. Mașina sosită în secunda 5
nu găsește loc liber. În secunda 6
se eliberează locul 2
. După închiderea parcării, pe locul 1
va fi parcată mașina venită în secunda 2
, locul al doilea fiind liber.