Programozó versenyek

DEIK Regionális Programozó Csapatverseny, középiskolai kategória, 2024. december 1.

2024. december 1. 10:00 – 2024. december 1. 15:00

A menekülés

Szerencsére az előzőek alapján le tudtuk szűkíteni azon épületek körét ahol a társunkat tartják fogva. Így már "semmi egyéb dolgunk nincs", minthogy megmentsük őt. Azonban a terroristák csapdákat és akadályokat gördítettek elénk, hogy megnehezítsék a társunkhoz való eljutást. A Ti feladatotok lesz megpróbálni végigmenni az akadálypályán, hogy elérjétek a csapattagotokat!

Input és szabályok

A bemenet egyetlen, sor vége jellel lezárt sor, mely egy stringet tartalmaz az alábbiak szerint:

  • A string karakterei csakis a _, |, ~, l, c és P karakterek lehetnek.
  • A pontosan 1 darab P karakter jelöli a csapattársunkat.
  • Az összes többi karakterből tetszőleges számú előfordulhat a pályán.
Szabályok:
  • A pálya "bal széléről" indulunk.
  • A pályán balról jobbra mozoghatunk csak.
  • Az akadálypálya elején a "láb erőnk" és a "tüdőkapacitásunk" is 1-1.
  • Az _ karakter jelöli az utat, melyen minden megkötés nélkül áthaladhatunk.
  • A | karakter jelöli a falat. A megszakítás nélküli ismétlődések a fal magasságát adják meg, így például a ||| egy 3 méter magas falat jelent. Ha fallal találkozunk (egy, vagy több összefüggő | karakter) úgy a "láb erőnk" dönti el, hogy át tudunk-e mászni rajta. Ha a "láb erőnk" legalább akkora, mint a fal magassága, úgy átmászunk az összes, egymás után következő falon és a falak utáni "mezőbe" kerülünk. Ha a "láb erőnk" kisebb, mint a fal magassága, akkor elakadunk és vége a játéknak.
  • A ~ karakter jelöli a vizet. A megszakítás nélküli ismétlődések a víz hosszát adják meg, így például a ~~~ egy 3 méter hosszú vizet jelent. Amennyiben vízzel találkozunk (egy, vagy több összefüggő ~ karakter) úgy a "tüdőkapacitásunk" dönti el, hogy át tudunk-e úszni rajta. Az elv teljesen ugyanaz, mint a fal esetén.
  • Az összefüggő fal és víz mezők után mindig "megállunk pihenni", így ott feltöltődik mind a "láb erőnk", mind a "tüdőkapacitásunk". Tehát például |||~~~~||~~ legyőzhető 3-as "láb erővel" és 4-es "tüdőkapacitással", mert a 3 egységnyi fal után visszatöltődik a "láb erő", a 4 egységnyi úszás után pedig visszatöltődik a "tüdőkapacitás".
  • Az l és c karakterek rendre az "IT'S LEG DAY", illetve a "CARDIO TIME" rövidítései. Ilyenkor megállunk és a megfelelő aktivitást végrehajtva véglegesen növeljük a "láb erőnket" (l esetén), illetve a "tüdőkapacitásunkat" (c esetén).
  • Az l és c karakterek "útnak" számítanak, így ezeknél visszatöltődik mind a "láb erőnk", mind a "tüdőkapacitásunk".

Output

A kimenet az 1 szám ha el tudunk jutni a társunkig, illetve a 0 szám ha nem.

Példa

Magyarázat

Az első esetben egyedül a P előtti 2 méter hosszú víz jelenthet akadályt, hisz azon kívül mind a falak magassága, mind a vizek hossza 1 méter. Viszont mivel "cardioztunk" kicsit a 2 méteres víz előtt, így a "tüdőkapacitásunk" 2-re nőtt, azaz át tudunk úszni rajta.
A második esetben az akadályt a 2 méter magas falak és a 2 méter hosszú vizek jelenthetik. A falakon át tudunk mászni, mert szinte a pálya elején "lábazunk" kicsit, így a "láb erőnk" 2-re nőtt, ám az első 2 méteres víz a "cardiozás" előtt van, így azt még nem tudjuk átúszni.

Debreceni Egyetem, Informatikai Kar, v. 2024.09.30.