Počet bodov:
Program:  100b

Táto úloha je programátorská. Ako svoje riešenie odovzdaj program vo svojom obľúbenom jazyku a automaticky sa dozvieš koľko si dostal/a bodov. Ak si takýto typ úloh ešte nikdy neriešil/a skús sa pozrieť ako by mal vyzerať ideálny program. Ak zatiaľ programovať nevieš, ale chcel/a by si vedieť možeš skúsiť náš python tutoriál.

Ak máte akékoľvek otázky ohľadom tejto úlohy, napíšte Miške na email [email protected]

Škola je v plnom prúde a Mišku so Sofi čaká testík z nemeckých nepravidelných slovies. Ani jedna z nich nevie nemčinu, a tak sa dohodli, že sa po vyučovaní pôjdu spolu učiť. Nemôžu sa ale začať učiť, kým nebudú mať spravený absolútne dokonalý playlist, kde sú pesničky vhodné na takúto príležitosť! Na vytvorenie tohto playlistu chcú použiť aplikáciu so všetkými funkciami, ktoré považujú za nevyhnutné. Chcú postupne pridávať, počúvať a preskakovať pesničky. Väčšina aplikácii toto zvláda, avšak posledná nevyhnutná funkcia je ukazovanie koľko času zostáva do konca playlistu. Všetky aplikácie ukazujú celkový čas playlistu, ale po vypočutí a preskočení niektorých pesničiek ich zaujíma, koľko času zostáva do konca. Nešťastné z tejto skutočnosti zistili, že ich jediné riešenie je si aplikáciu naprogramovať. Lenže, Miška a Sofi nemajú čas na programovanie, pretože sa musia učiť, a tak sa obrátili na vás, aby ste to spravili za nich.

Úloha

Na vstupe dostanete kombinácie štyroch príkazov označených číslami od \(1\) po \(4\). Vašim cieľom je príkazy postupne spracovávať a vyhodnocovať. Význam príkazov je nasledovný:

  1. pridajte pesničku dĺžky \(t\) sekúnd na koniec playlistu.
  2. prešlo \(t\) sekúnd.
  3. preskočte práve aktívnu pesničku.
  4. vypíšte koľko sekúnd ostáva do konca playlistu.

Môžete predpokladať, že nebudete preskakovať pesničku pokiaľ je playlist prázdny a že \(t\) nikdy nebude viac ako čas ostávajúci do konca playlistu.

Formát vstupu

Na prvom riadku dostanete číslo \(n\), počet príkazov. Na nasledujúcich \(n\) riadkoch sa nachádza na každom riadku jeden príkaz (číslo od \(1\) po \(4\)). Za príkazom \(1\) a \(2\) nasleduje v tom istom riadku číslo udávajúce počet sekúnd \(t\).

Formát výstupu

Po každom príkaze \(4\) vypíšte jedno číslo udávajúce koľko sekúnd ostáva do konca playlistu.

Hodnotenie

Existuje \(5\) sád vstupov. Za každú správne vyriešenú sadu získate \(20\) bodov. Dĺžky pesničiek nepresiahnu 300 sekúnd. Pre jednotlivé sady vstupov platia nasledovné obmedzenia:

Sada. 1. 2. 3. 4. 5.
\(1 \leq n \leq\) \(10\) \(1\ 000\) \(50\ 000\) \(100\ 000\) \(300\ 000\)

Príklad

Input:

3
1 100
2 42
4

Output:

58

Príkaz číslo 1 pridá pesničku dĺžky 100 sekúnd, do konca playlistu teda ostáva 100 sekúnd. Nasleduje príkaz 2 ktorý hovorí že prešlo 42 sekúnd a do konca playlistu teraz ostáva \(100 - 42 = 58\) sekúnd. Nakoniec vypíšeme koľko sekúnd ostáva do konca playlistu, čo je teda 58 sekúnd.

Input:

6
1 72
1 45
4
3
2 12
4

Output:

117
33

Pridáme pesničky dĺžky 72 a 45 sekúnd, do konca playlistu ostáva \(72 + 45 = 117\) sekúnd. Vypíšeme koľko času ostáva do konca. Príkazom 3 je preskočená aktívna pesnička, v playliste ostáva pesnička o dĺžky 45 sekúnd. Prejde 12 sekúnd a vypíšeme čas čo ostáva do konca, čo je 33 sekúnd.

Odovzdávanie

Na odovzdávanie sa musíš prihlásiť

Otázky a diskusia

Po skončení kola budete mať príležitosť na diskutovanie o riešeniach v diskusii pod vzorovým riešením.