„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 , nu de la momentul în care apare persoana.
Clădirea. Etajele sunt numerotate de la la . Există un singur lift, în care încap oricâte persoane. La secunda , liftul se află pe etajul , este inactiv și are ușile închise.
Persoanele. Persoana apare la secunda pe etajul și vrea să ajungă pe etajul . Ea vrea în sus dacă și în jos dacă .
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 , ușile sunt deschise până la secunda inclusiv, iar liftul se poate deplasa din nou la secunda . 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: , , și . Aici, este numărul de etaje, este etajul de pornire, este timpul ușilor, iar este numărul de persoane.
Pe fiecare dintre următoarele linii se găsesc trei numere întregi: , și , pentru persoana . Persoanele sunt numerotate de la la în ordinea din fișier și sunt date în ordine nedescrescătoare a valorilor .
Date de ieșire
Fișierul de ieșire pd.out va conține linii. Pe linia se va găsi un număr întreg: secunda la care persoana iese din lift.
Restricții și precizări
- și
- Răspunsurile pot necesita numere întregi pe de biți.
- Mai multe persoane pot ieși din lift în aceeași secundă.
- Datele de intrare conțin toate valorile , 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 | , , și |
| 2 | 30 | |
| 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 , deci ușile deschise la secunda sunt deschise la secundele și . Tabelul arată secundele importante:
| Secunda | Etajul | Ce se întâmplă |
|---|---|---|
| Apar persoanele , și . Cea mai apropiată persoană care așteaptă este mai sus, deci liftul merge în sus. | ||
| Intră persoanele și . Ușile sunt deschise până la secunda . | ||
| Iese persoana . Persoana vrea în jos, deci nu intră. Ușile sunt deschise până la secunda . | ||
| Iese persoana . Nu mai este nimic în față, deci liftul merge în jos. Ușile sunt deschise până la secunda . | ||
| Intră persoana . Ușile sunt deschise până la secunda . | ||
| Intră persoana . Ușile sunt deschise până la secunda . | ||
| Iese persoana . Persoana vrea în sus, deci nu intră. Ușile sunt deschise până la secunda . | ||
| Iese persoana . Nu mai este nimic în față, deci liftul merge în sus. Ușile sunt deschise până la secunda . | ||
| Intră persoana . Ușile sunt deschise până la secunda . | ||
| Iese persoana . Liftul devine inactiv. |