Programozó versenyek

Magas szintű programozási nyelvek 2, 2016. május 24., K10 ZH

2016. május 24. 10:20 – 2016. május 24. 12:00

Az utolsó csekk a pohárban (Java)

A bankok csekkfeldolgozó központjaiban a csekkek ömlesztve kerülnek a csekkfeldolgozó automaták elé. Minden csekk azonos felépítésű: az egyik oldalukon olvasható a pénzösszeg, a másik oldalukon van az átutalást igazoló aláírás helye. A csekkeken szereplő összegek nem kerülnek automatikusan átutalásra, ugyanis nem mindegyik csekk tekinthető érvényesnek.

Az érvényes csekkekre igaz, hogy ha a rajtuk szereplő pénzösszeg értéke nagyobb 5000-nél, akkor szerepelnie kell rajtuk aláírásnak.

Mivel a csekkfeldogozáskor csak a csekkeknek az egyik oldala látható, ezért nyilvánvaló, hogy az érvényesség eldöntéséhez bizonyos esetekben meg kell fordítani a csekket.

Az ön feladata, hogy írjon egy olyan programot, amely a csekkek egyik oldalán található adatokat beolvasva meghatározza, majd a standard kimenetre írja, hogy a beolvasott csekkek közül a legrosszabb esetben mennyit kell minimálisan megfordítani ahhoz, hogy egyértelműen és minden kétséget kizáróan el lehessen dönteni azt, hogy érvényes-e az összes feldolgozott csekk.

A bemenet több tesztesetet tartalmaz. Egy teszteset minden sorában vagy egy pozitív egész szám, vagy egy sztring (aláírás) szerepel. Ha egy csekken nincs aláírás, és pont ez az oldala látszik, akkor egy olyan sztringet látunk, amelyik pontosan öt darab '.' (pont) karaktert tartalmaz. A teszteseteket egy olyan sor zárja, amely az „END” sztringet tartalmazza, ez a sztring sohasem szerepel aláírásként a csekkeken. Feltételezhető, hogy minden tesztesetben szerepel legalább egy csekket leíró sor.

A programjának minden tesztesetre egyetlen számot kell a standard kimenetre írnia külön sorban: a minimálisan megfordítandó csekkek számát.

Példa bemenet

  1. 6000
  2. 5000
  3. Teszt Elek
  4. .....
  5. END
letöltés szöveges állományként

A példa bemenethez tartozó kimenet

  1. 2
letöltés szöveges állományként
Debreceni Egyetem, Informatikai Kar, v. 2024.09.30.