Feladat: I.292 Korcsoport: - Nehézségi fok: -
Füzet: 2012/április, 228 - 229. oldal  PDF  |  MathML 

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 (0,0) 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 (x,y) pontban van, akkor az E parancs az (x,y+1), a H parancs az (x,y-1), a J parancs az (x+1,y), illetve a B parancs az (x-1,y) 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 (x1,y1) és (x2,y2) pontok esetén |x1-x2|+|y1-y2|.
A program első parancssori argumentuma legyen egy adatállomány neve. A fájl első sorában N, az ellenőrzési pontok száma (1N100000) és M, a robot utasításainak száma (1M300000) van. Az ezt követő N sorban az ellenőrzési pontok x és y koordinátái (-1000000x,y+1000000) 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 M darab karakter (EH, JB) van, amely a robot utasítássorát jelenti.
A parancssor második argumentumaként megadott kimeneti állomány M 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:

 
BemenetKimenet   3 550 041 131 -14EJHHB5

 
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ó.