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ý:
- pridajte pesničku dĺžky \(t\) sekúnd na koniec playlistu.
- prešlo \(t\) sekúnd.
- preskočte práve aktívnu pesničku.
- 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.