Feladat: S.111 Korcsoport: - Nehézségi fok: -
Füzet: 2016/november, 487 - 488. oldal  PDF  |  MathML 

A szöveg csak Firefox böngészőben jelenik meg helyesen. Használja a fenti PDF file-ra mutató link-et a letöltésre.

Egy vasútállomáson különböző befogadóképességű személyvagonokból állítanak össze egy szerelvényt. Egy csapat katona az éppen rendezés alatt álló vonatra szeretne felszállni, ezért figyelik, ahogy a vagonokat tologatják. Megfigyelték, hogy a rendező mozdony egyszerre mindig csak egy kocsit mozgat, azaz a fő szerelvény egy helyben áll, és ennek a végére kapcsolhatnak egy vagont, illetve néha meggondolják magukat, ekkor le is kapcsolhatnak egy kocsit a szerelvény végéről vagy az elejéről. Továbbá minden vagonra rá van írva, hogy hány utas fér el benne (egy pozitív egész szám 1 és 109 között). Egy tiszt figyeli a vonat összeállítását, és minden mozgatás után szeretné tudni, hogy mekkora osztagokat hozzon létre, ha minden osztag ugyanannyi katonából áll, és úgy kell felszállniuk a vonatra, hogy minden kocsi tele legyen, és az egyes osztagok tagjai ugyanabban a kocsiban utazzanak, továbbá minél kevesebb osztagba szeretné szervezni a katonákat. Mivel az állomáson rengeteg vagon van, ezért lapunk segítségét kérte, hogy ki tudja adni a helyes parancsokat.
A standard bemenet első sorában a mozgatások N száma van, a következő N sor mindegyike egy-egy mozgatást ír le:

0 x új vagont kapcsolnak a szerelvény végére, aminek a kapacitása x;
1 lekapcsolják az utolsó vagont;
2 lekapcsolják az első vagont.
A standard kimenet N sort tartalmazzon, minden mozgatás után az osztagok méretét. Amennyiben a szerelvény az egyik mozgatás után üres lenne, akkor sajnos nem lehet létrehozni semekkora csapatokat sem, ezt a 0 szám kiírásával jelezzük. A mozgatások helyesek, vagyis üres szerelvényről sohasem kapcsolnak le kocsit. A szerelvény kezdetben üres.
Pontozás: az első két tesztesetben (2 pont) csak ,,0'' és ,,1'' típusú mozgatások vannak, vagyis a vonat elejét sosem kapcsolják le.
Korlátok: 1N105, időkorlát 1 mp, memórialimit: 256 MB.
 
Bemenet (a  /  jel a mintában újsor    Kimenet    karaktert jelöl)8 /0 10 / 0 6 / 0 21 / 2 / 1 /10 / 2 / 1 / 3 / 6 / 6 / 18 / 0   0 18 / 2 / 1
 

Magyarázat: a szerelvény az egyes műveletek után: (10); (10,6); (10,6,21); (6,21); (6); (6,18); (18); ().
Pontozás és korlátok: a programhoz mellékelt, a helyes megoldás elvét tömören, de érthetően leíró dokumentáció 1 pontot ér. A programra akkor kapható meg a további 9 pont, ha bármilyen hibátlan bemenetet képes megoldani a fenti korlátoknak megfelelően.
Beküldendő egy tömörített s111.zip állományban a program forráskódja, valamint a program rövid dokumentációja, amely a fentieken túl megadja, hogy a forrás mely fejlesztői környezetben fordítható.