Diferente pentru problema/matperm2 intre reviziile #4 si #22

Diferente intre titluri:

matperm2
Matperm2

Diferente intre continut:

== include(page="template/taskheader" task_id="matperm2") ==
Gigel are o matrice cu N linii si M coloane cu elemente numere naturale. Din cauza plictiselii(nu prea se mai fac ore inainte de vacanta de vara) s-a hotarat sa se joace cu matricea. Astfel, el va face P pasi. La fiecare pas, va lua liniile si le va amesteca conform unei permutari date P1. Apoi, va lua coloane si le va amesteca conform unei alte permutari P2. Dupa aceea, din cauza ca matricea nu este destul de amestecata pentru gusturile lui Gigel, el va lua Q perechi de pozitii (x1, y1), (x2, y2) si le va face swap, in ordinea in care acestea apar in fisierul de intrare.
Bineinteles, fiind nerabdator, nu a terminat de executat cele P operatii si se bazeaza pe voi sa ii spuneti cum va arata matricea dupa ce se executa cei P pasi.
Gigel are o matrice $V$ cu $N$ linii si $M$ coloane cu elemente numere naturale cu proprietatea ca $V[x][y] = (x - 1) * M + y$ pentru fiecare $1$ ≤ $x$ ≤ $N$ si $1$ ≤ $y$ ≤ $M$ .
Din cauza plictiselii(nu prea se mai fac ore inainte de vacanta de vara) s-a hotarat sa se joace cu matricea. Astfel, el va face $P$ pasi. La fiecare pas, va lua liniile si le va amesteca conform unei permutari date $P1$. Apoi, va lua coloane si le va amesteca conform unei alte permutari $P2$. Dupa aceea, din cauza ca matricea nu este destul de amestecata pentru gusturile lui Gigel, el va lua $Q$ perechi de pozitii $(x1, y1)$, $(x2, y2)$ si le va face swap, in ordinea in care acestea apar in fisierul de intrare.
Bineinteles, fiind nerabdator, nu a terminat de executat cele $P$ operatii si se bazeaza pe voi sa ii spuneti cum va arata matricea dupa ce se executa cei $P$ pasi.
h2. Date de intrare
Pe prima linie a fisierului de intrare $matperm2.in$ veti gasi 3 linii, N, M si P cu semnificatia din enunt. Pe urmatoarele N linii se vor gasi M numere naturale reprezentand elementele matricei. Linia N + 2 contine permutarea P1, conform careia vor fi amestecate liniile, iar linia N + 3 va contine permutarea P2 dupa care vor fi amestecate coloanele. Urmatoarea linie contine un singur numar natural Q, iar urmatoarele Q linii vor contine cate patru numere x1, y1, x2, y2, reprezentand cate o pereche de pozitii careia i se va face swap.
Pe prima linie a fisierului de intrare $matperm2.in$ veti gasi $3$ linii, $N$, $M$ si $P$ cu semnificatia din enunt. Linia $2$ contine permutarea $P1$, conform careia vor fi amestecate liniile, iar linia $3$ va contine permutarea $P2$ dupa care vor fi amestecate coloanele. Urmatoarea linie contine un singur numar natural $Q$, iar urmatoarele $Q$ linii vor contine cate patru numere $x1$, $y1$, $x2$, $y2$, reprezentand cate o pereche de pozitii careia i se va face swap.
h2. Date de ieşire
Fisierul de iesire $matperm2.out$ va contine N linii. Pe fiecare linie se vor afla M elemente numere naturale, separate printr-un spatiu, reprezentand elementele matricei.
h2. Restricţii
Fisierul de iesire $matperm2.out$ va contine $N$ linii. Pe fiecare linie se vor afla $M$ elemente numere naturale, separate printr-un spatiu, reprezentand elementele matricei.
* $1 ≤ N, M, Q ≤ 1000$
h2. Restrictii si precizari
 
* $1 ≤ N, M ≤ 1.000$
* $1 ≤ P ≤ 2.000.000.000$
* $0 ≤ Q ≤ 1000$
* Cele Q operatii se executa la fiecare pas!
h2. Exemplu
table(example). |_. matperm2.in |_. matperm2.out |
| 3 4 1
1 2 3 4
5 6 7 8
9 10 11 12
1 3 2
1 2 4 3
0
h3. Explicaţie
...
 
Initial matricea este:
$1  2  3  4$
$5  6  7  8$
$9 10 11 12$
Dupa aplicarea $P1$ matricea devine:
$1  2  3  4$
$9 10 11 12$
$5  6  7  8$
Dupa aplicarea $P2$ matricea devine:
$1  2  4  3$
$9 10 12 11$
$5  6  8  7$
== include(page="template/taskfooter" task_id="matperm2") ==

Nu exista diferente intre securitate.

Diferente intre topic forum:

 
9952