amestec

Time limit: 0.3s Memory limit: 4MB Input: amestec.in Output: amestec.out

Se consideră un amestec de două substanțe, ale căror molecule se notează cu 00, respectiv 11, reprezentat ca o matrice pătratică cu NN linii și NN coloane.

În vederea separării celor două substanțe, asupra amestecului se aplică succesiv o serie de KK forțe magnetice, caracterizate de următoarele trei mărimi:

  • durata aplicării forței, notată cu did_i (1iK1 \leq i \leq K) exprimată în secunde
  • poziția aplicării forței, notată cu pip_i {‘N’, ‘S’, ‘E’, ‘V’}, 1iK1 \leq i \leq K, ce reprezintă unul dintre cele patru puncte cardinale (Nord, Sud, Est, Vest)
  • tipul moleculelor (00 sau 11) asupra cărora acționează forța, notat cu mim_i, 1iK1 \leq i \leq K.

Deplasarea moleculelor se face după următoarele reguli:

  • moleculele se deplasează numai pe orizontală când forța este aplicată în Est sau Vest sau numai pe verticală când forța este aplicată în Nord sau Sud;
  • moleculele se deplasează către locul în care este amplasată forța și, într-o secundă, o moleculă se deplasează cel mult cu o singură poziție;
  • o moleculă se deplasează numai dacă în fața ei, în direcția de deplasare, există o moleculă de alt tip, cu care face schimb de locuri, altfel rămâne pe aceeași poziție;
  • o forță acționează asupra tuturor moleculelor de tipul precizat.

Cerință

Să se scrie un program care determină matricea amestecului obținut după aplicarea forțelor magnetice.

Spre exemplu, dacă N=3N = 3, matricea moleculelor este cea de mai jos și se aplică K=2K = 2 forțe, caracterizate prin 1N1, 2E0, amestecul va trece prin următoarele etape:

Date de intrare

Fişierul de intrare amestec.in conţine pe prima linie două numerele naturale, NN și KK, separate printr-un spaţiu, cu semnificația de mai sus. Pe fiecare din următoarele NN linii se găseşte câte un şir de NN caractere 00 sau 11. Pe fiecare dintre următoarele KK linii se găsesc câte 33 valori, după cum urmează: un număr natural did_i, un caracter pip_i (’N’,’S’,’E’,’V’) și un număr natural mim_i, 1iK1 \leq i \leq K, având semnificația de mai sus, neseparate prin spațiu.

Date de ieșire

Fișierul de ieșire amestec.out va conține matricea amestecului final. Pe fiecare din cele NN linii ale fișierului de ieșire se va scrie câte un șir de NN caractere 00 sau 11, neseparate prin spațiu.

Restricții și precizări

  • 2N1002 \leq N \leq 100
  • 1K1001 \leq K \leq 100
  • 1di109,1iK1 \leq d_i \leq 10^9, 1 \leq i \leq K

Exemplu

amestec.in

3 2
011
101
110
1N1
2E0

amestec.out

111
110
100

Explicație

Matricea moleculelor are 33 linii și 33 coloane.
Se aplică un număr de K=2K=2 forțe, prima cu durata de 11 secundă, spre nord, și care atrage moleculele de tip 11, și a doua cu durata de 22 secunde, spre est, ce atrage moleculele de tip 00. După aplicarea celor 22 forțe, moleculele se vor reașeza conform matricei alăturate

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