Pocket Dimension

Time limit: 0.5sMemory limit: 64MBInput: pd.inOutput: pd.out

„Am măsurat interiorul. Aș vrea să mă opresc acum.” — Costel, șeful de la mentenanță, văzut ultima dată în fundul liftului

Dorel a reparat liftul de pe stația spațială Zbeng-9, iar acum cabina este o dimensiune de buzunar. Încap toți, inclusiv o lună mică. Tanti Geta vrea să știe când iese din lift fiecare navetist. În această problemă, fiecare navetist este numit persoană.

Cerință

Pentru fiecare persoană, aflați secunda la care iese din lift. Secundele se numără de la secunda 00, nu de la momentul în care apare persoana.

Clădirea. Etajele sunt numerotate de la 11 la FF. Există un singur lift, în care încap oricâte persoane. La secunda 00, liftul se află pe etajul ss, este inactiv și are ușile închise.

Persoanele. Persoana ii apare la secunda tit_i pe etajul aia_i și vrea să ajungă pe etajul bib_i. Ea vrea în sus dacă bi>aib_i > a_i și în jos dacă bi<aib_i < a_i.

Cum funcționează liftul

Liftul se deplasează cu un etaj pe secundă. Continuă în direcția curentă cât timp este ceva în față: destinația unui pasager sau o persoană care așteaptă mai departe, indiferent în ce direcție vrea să meargă. Când nu mai este nimic în față, se întoarce. Dacă nici în acea direcție nu este nimic, rămâne inactiv până apare cineva.

Aceste detalii stabilesc răspunsurile exacte:

  • Intrarea în lift. O persoană care așteaptă intră când liftul este pe etajul ei și merge în direcția dorită de ea. Dacă liftul se întoarce pe acel etaj, persoanele care vor în noua direcție intră imediat.
  • Plecarea din starea inactivă. Un lift inactiv merge în sus dacă cineva de pe etajul lui vrea în sus; altfel, în jos dacă cineva de pe etajul lui vrea în jos. În caz contrar, se îndreaptă spre cea mai apropiată persoană care așteaptă, iar la egalitate merge în sus.
  • Ușile. Ușile se deschid când cineva iese sau intră în timp ce ele sunt închise. Dacă acest lucru se întâmplă la secunda TT, ușile sunt deschise până la secunda T+dT + d inclusiv, iar liftul se poate deplasa din nou la secunda T+d+1T + d + 1. Dacă cineva intră în timp ce ușile sunt deschise, acestea nu rămân deschise mai mult.
  • Ordinea dintr-o secundă. Mai întâi liftul se deplasează, apoi pasagerii ies, apoi apar persoanele noi, apoi persoanele intră în lift și liftul își stabilește direcția. O persoană care apare pe etajul liftului poate intra în aceeași secundă.

Date de intrare

Pe prima linie a fișierului de intrare pd.in se găsesc patru numere întregi: FF, ss, dd și nn. Aici, FF este numărul de etaje, ss este etajul de pornire, dd este timpul ușilor, iar nn este numărul de persoane.

Pe fiecare dintre următoarele nn linii se găsesc trei numere întregi: tit_i, aia_i și bib_i, pentru persoana ii. Persoanele sunt numerotate de la 11 la nn în ordinea din fișier și sunt date în ordine nedescrescătoare a valorilor tit_i.

Date de ieșire

Fișierul de ieșire pd.out va conține nn linii. Pe linia ii se va găsi un număr întreg: secunda la care persoana ii iese din lift.

Restricții și precizări

  • 2≤F≤1092 \leq F \leq 10^9
  • 1≤s≤F1 \leq s \leq F
  • 0≤d≤1090 \leq d \leq 10^9
  • 1≤n≤2⋅1051 \leq n \leq 2 \cdot 10^5
  • 0≤ti≤1090 \leq t_i \leq 10^9
  • 1≤ai,bi≤F1 \leq a_i, b_i \leq F și ai≠bia_i \neq b_i
  • Răspunsurile pot necesita numere întregi pe 6464 de biți.
  • Mai multe persoane pot ieși din lift în aceeași secundă.
  • Datele de intrare conțin toate valorile bib_i, dar liftul nu folosește destinația unei persoane care așteaptă. Folosește doar direcția în care vrea să meargă aceasta.
# Punctaj Restricții
1 20 F≤300F \leq 300, n≤300n \leq 300, ti≤300t_i \leq 300 și d≤10d \leq 10
2 30 n≤5 000n \leq 5 \ 000
3 50 fără restricții suplimentare

Exemplu

pd.in

10 1 1 5
0 3 8
0 3 5
0 5 1
1 6 2
2 2 9

pd.out

9
5
20
18
30

Explicație

Aici d=1d = 1, deci ușile deschise la secunda TT sunt deschise la secundele TT și T+1T + 1. Tabelul arată secundele importante:

Secunda Etajul Ce se întâmplă
00 11 Apar persoanele 11, 22 și 33. Cea mai apropiată persoană care așteaptă este mai sus, deci liftul merge în sus.
22 33 Intră persoanele 11 și 22. Ușile sunt deschise până la secunda 33.
55 55 Iese persoana 22. Persoana 33 vrea în jos, deci nu intră. Ușile sunt deschise până la secunda 66.
99 88 Iese persoana 11. Nu mai este nimic în față, deci liftul merge în jos. Ușile sunt deschise până la secunda 1010.
1212 66 Intră persoana 44. Ușile sunt deschise până la secunda 1313.
1414 55 Intră persoana 33. Ușile sunt deschise până la secunda 1515.
1818 22 Iese persoana 44. Persoana 55 vrea în sus, deci nu intră. Ușile sunt deschise până la secunda 1919.
2020 11 Iese persoana 33. Nu mai este nimic în față, deci liftul merge în sus. Ușile sunt deschise până la secunda 2121.
2222 22 Intră persoana 55. Ușile sunt deschise până la secunda 2323.
3030 99 Iese persoana 55. Liftul devine inactiv.

Log In or Sign Up to be able to send submissions!