== include(page="template/taskheader" task_id="roboti1") ==
Poveste și cerință...
Într-o zonă dreptunghiulară cu p linii și q coloane se află n roboți. Celula din stânga sus se află pe linia 1 și coloana 1. Pentru fiecare robot se cunoaște linia și coloana pe care se află, precum și orientarea lui. Un robot poate fi orientat în una din cele patru direcții: nord, sud, est sau vest, codificate cu caracterele N, S, E, respectiv V. Fiecare robot execută m comenzi. O comandă este codificată printr-un caracter L,R sau F. La o comandă de tip L, robotul se întoarce cu 90 de grade spre stânga, în sensul invers acelor de ceasornic. La o comandă de tip R, robotul se întoarce cu 90 de grade spre dreapta, în sensul acelor de ceasornic. La o comandă de tip F, robotul se deplasează cu o poziție în sensul în care este orientat robotul.
Roboții execută simultan prima comandă din șirul lor de comenzi, apoi a doua comandă, etc.
Dacă la un moment dat, doi sau mai mulți roboți ajung în aceeași poziție, aceasta va conduce la dispariția lor, iar celula din care dispar se consideră traversată de toți cei care au dispărut.
Dacă un robot se deplasează în afara suprafeței la execuția unei comenzi, robotul dispare.
Se consideră trecere printr-o celulă vizitarea rezultată în urma executării unei comenzi de tip F. Dacă un robot trece de mai multe ori printr-o celulă, se contorizează fiecare trecere a sa. Celula din care pleacă fiecare robot se consideră trecere pentru robotul respectiv.
h2. Cerință
Scrieți un program care să determine:
a) numărul de roboți rămași după execuția celor m comenzi,
b) poziția celulei din zonă prin care s-a trecut cel mai des (dacă există mai multe celule, atunci se va preciza cea cu indicele de linie cel mai mic, iar dacă există mai multe cu acest indice, cea cu indicele de coloană cel mai mic) și numărul de treceri prin această celulă.
h2. Date de intrare
Fișierul de intrare $roboti1.in$ ...
Fișierul roboti1.in conține pe prima linie numerele naturale p q separate printr-un spațiu, reprezentând numărul de linii și de coloane ale zonei. Pe a doua linie se află numărul natural n, reprezentând numărul de roboți. Pe următoarele n linii se află câte trei valori separate prin câte un spațiu, reprezentând linia, coloana și orientarea fiecărui robot. Pe următoarea linie se află numărul natural m reprezentând numărul de comenzi de executat de către fiecare robot. Pe următoarele n linii se află câte m caractere reprezentând comenzile pentru fiecare robot (mai întâi cele m comenzi pentru primul robot, apoi cele m comenzi pentru al doilea robot, ș.a.m.d.). Între caracterele unei comenzi nu există nici un spațiu.
h2. Date de ieșire
În fișierul de ieșire $roboti1.out$ ...
Fișierul roboti1.out va conține pe prima linie numărul de roboți rămași în final. Pe linia a doua se va scrie poziția celulei (linie și coloană) prin care s-a trecut cel mai des (dacă există mai multe celule, atunci se va preciza cea cu indicele de linie cel mai mic, iar dacă există mai multe cu acest indice, cea cu indicele de coloană cel mai mic) și numărul de treceri prin această celulă, trei valori separate prin câte un spațiu.
h2. Restricții
* $... ≤ ... ≤ ...$
* 1<= p, q, m <= 50
* 2<= n <= 50
* Caracterele cu care se codifică orientările pot fi doar N, S, E, V, iar cele pentru comenzi L, R sau F (litere mari).
* Inițial, nu există doi sau mai mulți roboți în aceeași celulă.
h2. Exemplu
table(example).
|_. roboti1.in |_. roboti1.out |
| This is some
text written on
multiple lines.
| This is another
text written on
multiple lines.
| 4 4
3
1 1 E
1 3 V
4 4 S
2
FL
FF
FF
| 0
1 2 2
|
h3. Explicație
...
După prima comandă, roboții 1 și 2 ar trebui să ajungă în aceeași celulă, deci dispar. Al treilea robot conform primei deplasări va părăsi zona, deci dispare. În final vor fi 0 roboți. Doi roboți au ajuns în celula de pe linia 1 și coloana 2, după care au dispărut. Prin celelalte celule s-a trecut maxim o singură dată.
== include(page="template/taskfooter" task_id="roboti1") ==