Parcare

Time limit: 0.25s Memory limit: 256MB Input: parcare.in Output: parcare.out

În cel mai recent eveniment al companiei Tesla, Paul Musk a anunțat un nod 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 NN locuri, numerotate de la 11 la NN, și este deschisă timp de TT secunde, începând cu secunda 11.
Pe parcursul zilei, sosesc MM mașini care vor să folosească parcarea, pentru fiecare dintre acestea știindu-se timpul de sosire sis_i și timpul de plecare pip_i. Mașinile vin în ordinea timpului de sosire sis_i și ocupă locul de parcare în intervalul de timp [si,pi][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−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.

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 TT.

Date de intrare

Pe prima linie se găsesc trei numere întregi NN, MM și TT, 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 MM linii conțin fiecare câte două numere întregi sis_i, pip_i, reprezentând venirea unei mașini la secunda sis_i care va pleca la secunda pip_i.

Mașinile apar în fișierul de intrare în ordine crescătoare după timpul de sosire sis_i.

Date de ieșire

Se vor afișa M+1M + 1 linii în total, primele MM linii conținând fiecare câte un număr întreg între 11 și NN reprezentând locul de parcare pe care îl va ocupa mașina, sau 1−1 dacă nu există niciun loc de parcare disponibil.

Ultima linie va conține NN numere întregi, reprezentând configurația parcării la închidere, unde cel de-al ii-lea număr reprezintă timpul de sosire al mașinii de pe locul de parcare ii, sau 1−1 dacă locul de parcare ii este gol.

Restricții și precizări

  • 1N,M,T200 0001 \leq N, M, T \leq 200\ 000
  • 1siT1 \leq s_i \leq T
  • 1si<pi200 0001 \leq s_i \lt p_i \leq 200\ 000
  • Considerând următoarele 2×M2 \times M valori: s1,s2,...,sM,p1,p2,...,pMs_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.
  • Pentru 24 de puncte, si+1=pis_i + 1 = p_i, adică fiecare mașină stă exact o secundă.
  • Pentru 26 de puncte, pi>sjp_i \gt s_j, adică toate mașinile vin înainte ca vreo mașină să plece.
  • Pentru 26 de puncte, N1 000N \leq 1\ 000.
  • Pentru 24 de puncte, se respectă restricțiile inițiale.

Exemplu

parcare.in

2 4 6
1 3
2 10
4 6
5 8

parcare.out

2
1
2
-1
2 -1

Explicații

Prima mașină sosește în secunda 11 și este parcată pe locul 22.
A doua mașină sosește în secunda 22 și este parcată pe locul 11.
În secunda 33 se eliberează locul 22.
Cea de-a treia mașină sosește în secunda 44 și ocupă locul 22.
Mașina sosită în secunda 55 nu găsește loc liber.
În secunda 66 se eliberează locul 22.
După închiderea parcării, pe locul 11 va fi parcată mașina venită în secunda 22, locul al doilea fiind liber.

Log in or sign up to be able to send submissions!