Simulare - OJI 2022 VIII | pelican

This was the problem page during the contest. Access the current page here.
Time limit: 0.1s Memory limit: 32MB Input: pelican.in Output: pelican.out

Într-o minunată zi de primăvară, PP răţuşte au ieşit la plimbare pe lac. Un pelican milităros, care stătea pe mal, a decis să facă instrucţie cu nevinovatele raţe. Pentru aceasta, a cartografiat imediat lacul şi l-a reprezentat ca o matrice cu N linii (numerotate de la 00 la N1N - 1 de sus în jos) şi NN coloane (numerotate de la 00 la N1N - 1 de la stânga la dreapta). Astfel, poziţia oricărei raţe pe lac poate fi identificată prin linia şi coloana pe care se află raţa. Raţele sunt orientate cu faţa spre una dintre direcţiile Nord, Sud, Est, Vest. Pelicanul a codificat direcţiile 11, 22, 33, 44 ca în figură.

Când pelicanul strigă: “Comanda la mine!” raţele trebuie să execute simultan cele K comenzi pe care le dă pelicanul. Comenzile pelicanului sunt codificate astfel:

  • A nrA \ nr – Raţa avansează cu nrnr poziţii în direcţia spre care este orientată. Dacă avansând depăşeşte marginea tablei de joc va intra pe latura opusă. De exemplu, pe un lac 55 x 55, o raţă plasată în poziţia (1,31, 3) cu orientare 11 (Nord), executând comanda A 3A \ 3 se va deplasa astfel: (1,31, 3) \rarr (0,30, 3) \rarr (4,34, 3) \rarr (3,33, 3).
  • R nrR \ nr – Raţa se roteşte cu nr90°nr \cdot 90 \degree în sens orar, unde nr1,2,3,4nr \in {1,2,3,4}. De exemplu, dacă orientarea iniţială a raţei este 11 (Nord), comanda R 2R \ 2 va schimba orientarea spre 33 (Sud).
  • Z nrZ \ nr – Raţa zboară pe linia nr/Nnr / N şi coloana nrnr mod NN, păstrând orientarea. Se garantează că nr/N{0,1,...,N1}nr / N \in \{0,1, ..., N - 1\}. De exemplu, pe un lac 55 x 55, după executarea comenzii Z 7Z \ 7, raţa va ajunge pe linia 11 şi coloana 22.

Cerință

Scrieţi un program care, cunoscând poziţia iniţială pe lac a celor PP raţe şi succesiunea comenzilor pelicanului, determină poziţia finală a fiecărei raţe.

Date de intrare

Fișierul de intrare pelican.in conţine pe prima linie trei numere naturale N P KN \ P \ K, cu semnificaţia din enunţ. Pe următoarele PP linii sunt date câte 33 numere naturale i j di \ j \ d cu semnificaţia că pe linia ii şi coloana jj se găseşte o raţă orientată în direcţia dd. Ultimele KK linii conţin cele KK comenzi, câte o comandă pe o linie, în formatul specificat în enunţ (un caracter din mulţimea {'A', 'R', 'Z'} şi un număr natural). Valorile scrise pe aceeaşi linie sunt separate de câte un spaţiu.

Date de ieșire

Fișierul de ieșire pelican.out va conţine PP linii. Pe linia ii va fi scrisă poziţia celei de a ii-a raţe din fişierul de intrare (linia şi coloana separate printr-un singur spaţiu) după executarea în ordine a celor KK comenzi.

Restricții și precizări

  • 1N1 0001 \leq N \leq 1 \ 000;
  • 1P10 0001 \leq P \leq 10 \ 000;
  • 1K100 0001 \leq K \leq 100 \ 000;
  • 0i,j<N0 \leq i, j < N; şi 1d41 \leq d \leq 4;
  • Mai multe raţe pot ocupa aceeaşi poziţie.
  • Se garantează că datele din fişierul de intrare sunt corecte.
  • Pentru teste valorând 7676 de puncte fişierul de intrare nu conţine comanda ZZ.
  • Pentru teste valorând 2020 de puncte N100N \leq 100, P100P \leq 100 şi K1000K \leq 1 000.
  • Pentru teste valorând 3636 de puncte N>100N > 100, 1 000P50001 \ 000 \leq P \leq 5 000; şi K50 000K \leq 50 \ 000.

Exemplu

pelican.in

5 3 4
1 1 2
2 3 1
3 1 4
A 3
R 3
A 1
A 3

pelican.out

2 4
4 4
2 3

Explicație

Lacul are 55 linii şi 55 coloane. Pe lac există 33 raţe poziţionate ca în figură.

Pelicanul dă 44 comenzi pe care toate cele 33 raţe le execută în ordine. Raţele execută comanda A 3A \ 3

Raţele execută comanda R 3R \ 3 (se rotesc cu 270°270 \degree în sens orar)

Raţele execută comanda A 1A \ 1

Raţele execută comanda A 3A \ 3

Log in or sign up to be able to send submissions!