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 hatalmas tesztpályán egy robot mozgását kívánjuk vizsgálni a síkban. A robot mozgása a lehető legegyszerűbb, mert egy lépésben a koordináta-rendszer két tengelyének irányába tud elmozdulni. A robot a pontból indul, és egy utasítássort hajt végre. Az utasítássor E, H, J és B betűkből áll. Ha a robot az pontban van, akkor az E parancs az , a H parancs az , a J parancs az , illetve a B parancs az pontba viszi át. A tesztpályán ellenőrzési pontok vannak. A robot az ellenőrzési pontoktól való távolságok összegét minden lépése után feljegyzi. Távolságon a Manhattan-távolságot értjük a feladatban, amely az és pontok esetén . A program első parancssori argumentuma legyen egy adatállomány neve. A fájl első sorában , az ellenőrzési pontok száma () és , a robot utasításainak száma () van. Az ezt követő sorban az ellenőrzési pontok és koordinátái () vannak szóközzel elválasztva. Az ellenőrző pontok között lehetnek olyanok, amelyeknek mindkét koordinátája megegyezik. A következő sorban darab karakter (E, H, J, B) van, amely a robot utasítássorát jelenti. A parancssor második argumentumaként megadott kimeneti állomány sorban egy-egy egész számot, a robot által az addigi utasítások végrehajtása után feljegyzett távolság-összeget adja. Például:
A feladat megoldási ideje 1 másodperc lehet. A tesztpálya mérete és a nagyszámú ellenőrzési pont miatt a hatékony futás érdekében megfelelő előkészítés után érdemes a távolságok összegét számolni. Beküldendő a program forráskódja (i292.pas, i292.cpp, ), valamint a program rövid dokumentációja (i292.txt, i292.pdf, ), amely tartalmazza a megoldás rövid leírását, és megadja, hogy a forrásállomány melyik fejlesztő környezetben fordítható.
|