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. Kukac-robot egy számsoron szeretne végighaladni, végigkúszni. A robot onnan kapta a nevét, hogy mozgása a kukacokéra emlékeztet. A kúszás két fázisból áll: először összehúzza magát úgy, hogy testének első része helyben marad a számsoron és a végét előre húzza, amíg csak lehet; majd másodszor fordítva, testének utolsó pontja marad egy helyben és előre kinyúlik, amíg a szabályok engedik. Szabályok:
‐ | Összehúzott állapotban a Kukac-robot alatt lévő számok összege legalább , és a lefedett számok száma kettőnél nem lehet kevesebb. |
‐ | Kinyújtott állapotban legfeljebb lehet az alatta levő számok összege és nem nyúlhat öt számnál hosszabban. |
‐ | A Kukac-robot induló helyzete: az első két számon helyezkedik el összehúzott állapotban. (A kezdőállapotra a szabályokat nem kell vizsgálni.) |
‐ | Beérkezésnek számít az a kinyújtott állapot, amikor a számsor utolsó tagját lefedi. |
Készítsünk programot i451 néven, amely meghatározza, hogy Kukac-robot végig tud-e menni a számsoron és ha igen, akkor legkevesebb hány lépésben. A program standard bemenetének első sorában 3 szám van: () a számsor hossza, () összehúzott állapotban a Kukac-robot alatti és () a kinyújtott állapot alatti számok összege. Az ezt követő sorban a számsor tagjait adjuk meg szóközzel elválasztva, azaz darab számot (. A program írja ki a standard kimenetre, hogy legkevesebb hány megnyúlás alatt kúszik át a Kukac-robot a számsoron. Ha nem tud a számsoron végigkúszni, akkor a kimenet legyen -1.
Beküldendő egy tömörített i451.zip állományban a program forráskódja és rövid dokumentációja, amely megadja, hogy a forrásállomány melyik fejlesztői környezetben fordítható. |