Házi feladat

3200A+ Kincses térkép

Általános leírás

Törekedj arra, hogy szép, áttekinthető kódot írj! Úgy oldd meg a feladatokat, hogy függvényeket használsz a megoldáshoz! A felhasznált függvényekben ne történjen konzolra való kiírás!

Mindegyik feladatban nagyon fontos, hogy bár egyetlen inputfájlt kapsz, úgy írd meg a programod, hogy bármilyen, a feladatkiírásnak megfelelő inputfájllal működjön!

3.200-A+ Kincses térkép

Olvassuk be az alábbi fájl tartalmát egy mátrixba, majd a következő feladatokat oldjuk meg. Minden feladat előtt a program írja ki a feladat sorszámát!

Az input.txt-ben található mátrix egyjegyű számokból áll.

Valójában ez egy térkép, ahol egy mező szomszédai alatt a felső, alsó, jobb oldali és bal oldali szomszédjait értjük. Tehát a szomszédoknál nem számítanak az "átlós" szomszédok.

A 3200A+ annyiban más a 3200A feladathoz képest, hogy kincseket kell gyűjtögetni a pályán megadott szabályok szerint. Minden feladat abban lesz más, hogy mennyire bonyolultak ezek a szabályok. Egy azonban mindegyikben közös: A gyűjtögető ágens, akit a továbbiakban az egyszerűség kedvéért nevezzünk Karesznek, minden esetben a bal felső sarokból indul.

  1. feladat szabályai:

    • Karesz csak jobbra és lefele tud lépni.
    • A táblázatban a 2-esek nagy érzelmi értékkel bíró, egyébként különösebb anyagi értékkel nem bíró kincseket jelölnek.

    Legfeljebb mennyi ilyen nagy érzelmi értékkel bíró kincset tud Karesz így összegyűjteni, mire a jobb alsó sarokig eljut?

  2. feladat szabályai:

    • Karesz csak jobbra és lefele tud lépni.
    • A páros számok mindig olyan kincseket jelölnek, amelyek összértéke pontosan a számértékük fele.
    • A páratlan számok értéktelenek.

    Mekkora összértékű kincset tud Karesz maximálisan összeporszívózni, mire a pálya végére ér?

  3. feladat szabályai:

    • Karesz csak jobbra és lefele tud lépni.
    • A 9-es számok falat jelölnek. A falra lépni nem lehet.
    • A páros számok mindig olyan kincseket jelölnek, amelyek összértéke pontosan a számértékük fele.
    • A páratlan számok értéktelenek.

    Mekkora összértékű kincset tud Karesz maximálisan összeporszívózni, mire a pálya végére ér?

  4. feladat szabályai:

    • Karesz csak jobbra és lefele tud lépni.
    • A pálya valójában egy erdő, és a páratlan számok szúrós bokrokat jelentenek. Ezeken áthaladva Karesz strukturális szerkezete sérül, mindig annyival, amennyi a mező (páratlan) számértéke.

    Mennyi az a legkevesebb sérülés, amit Karesz sajnos muszáj összeszedjen, ha át akar kelni az erdőn?

  5. feladat szabályai:

    • Karesz csak jobbra és lefele tud lépni.
    • A pálya valójában egy erdő, és a páratlan számok szúrós bokrokat jelentenek. Ezeken áthaladva Karesz strukturális szerkezete sérül, mindig annyival, amennyi a mező (páratlan) számértéke.
    • A páros számok valójában finom gyümölcsök, amik annál értékesebbek, minél nagyobb a számértékük. Minden gyümölcs fele olyan értékes, mint a számértékük.

    Karesz a lehető legkevesebb sérülés mellett azért összeszedi a kincseket, amik az útjába kerülnek. Mennyi a legkevesebb strukturális szerkezeti sérülés mellett összeszedhető maximális kincsérték?

  6. feladat szabályai: A pálya valójában egy sivatag benzinkutakkal és változó nehézségű tereppel.

    • Karesz csak jobbra, lefele és akár átlósan lefele is tud lépni.
    • Karesz induló benzinkészlete 20 egység, a tankja legfeljebb 50 egységet bír.
    • Páratlan számmal ellátott mezőre lépni 5 egységbe és még annyi egység üzemanyagba kerül, amennyi a mező értéke.
    • Páros számmal ellátott mezőre 5 egységbe kerül lépni, de az ott lévő számértéknyi benzint (és nem csak a felét) hozzá lehet adni a tankhoz, amennyiben abban még van hely. Túltölteni a tankot nem lehetséges.

    El tud-e jutni Karesz az sivatag végére (jobb alsó sarkába) úgy, hogy maradjon benzine, és ha igen, legfeljebb mennyi benzint tud így magával vinni?

  7. feladat szabályai: A pálya valójában egy sivatag benzinkutakkal és változó nehézségű tereppel.

    • Karesz csak jobbra, lefele és akár átlósan lefele is tud lépni.
    • Karesz induló benzinkészlete 20 egység, a tankja legfeljebb 50 egységet bír.
    • Páratlan számmal ellátott mezőre lépni 5 egységbe és még annyi egység üzemanyagba kerül, amennyi a mező értéke.
    • Páros számmal ellátott mezőre 5 egységbe kerül lépni, de az ott lévő számértéknyi benzint (és nem csak a felét) hozzá lehet adni a tankhoz, amennyiben abban még van hely. Túltölteni a tankot nem lehetséges.
    • A 9-es számok valójában áthatolhatatlan sziklás hegységet jelentenek, arra menni nem lehet.

    El tud-e jutni Karesz az sivatag végére (jobb alsó sarkába) úgy, hogy maradjon benzine, és ha igen, legfeljebb mennyi benzint tud így magával vinni?