Nienawidzę słowa „przeznaczenie”. Narodziny, spotkania, rozstania. Sukcesy i porażki, szczęście i nieszczęście w życiu. Jeśli wszystko to jest z góry ustalone przez przeznaczenie, to po co w ogóle żyjemy? Ludzie urodzeni w bogatych rodzinach, ludzie urodzeni przez piękne matki, ludzie urodzeni w czasach głodu i wojny. Jeśli to wszystko jest przeznaczeniem, to Bóg jest zbyt nierozsądny i zbyt okrutny. Od tamtej pory nie mamy przyszłości, ponieważ wiemy, że niczego nie osiągniemy. Mawaru Penguindrum
Dany jest macierz $n\times m$, w której numery wierszy rosną z góry na dół, a numery kolumn rosną z lewej do prawej. Wykonaj na niej $q$ operacji:
- Podano $x_1, y_1, x_2, y_2, v$: dodaj $v$ do wszystkich elementów w obszarze $x_1\le x\le x_2, y_1\le y\le y_2$.
- Podano $x_1, y_1, l, t$: obróć kwadratowy podobszar o wierzchołku w $(x_1, y_1)$ i boku $l$ (obejmujący $x_1 \le x \le x_1 + l, y_1\le y\le y_1 + l$) o $t\times 90^\circ$ w kierunku przeciwnym do ruchu wskazówek zegara.
W jednym z zestawów danych występuje przypadek $opt=0$, należy go traktować jak $opt=2$.
Wypisz macierz po zakończeniu wszystkich operacji.
Wartości w macierzy są obliczane modulo $2^{32}$, co oznacza, że możesz użyć typu unsigned int do obliczeń.
Wejście
W pierwszej linii podano cztery liczby $n, m, q, \mathrm{lim}$.
W kolejnych $q$ liniach podano operacje, gdzie pierwsza liczba to $opt$ oznaczający typ operacji, a następnie odpowiednie parametry.
Wyjście
Aby zmniejszyć ilość danych wyjściowych, wypisz $\mathrm{lim}$ liczb.
Niech $a[i][j]$ oznacza wartość w $i$-tym wierszu i $j$-tej kolumnie macierzy. Zdefiniujmy:
output[((i - 1) * m + j - 1) % lim] ^= a[i][j] + ((i - 1) * m + j - 1) / lim
Wypisz tablicę output[0], output[1], ... output[lim - 1].
Przykład
Przykład 1 Wejście
4 4 2 16 1 2 2 4 4 1 2 3 1 1 1
Przykład 1 Wyjście
0 0 0 0 0 1 1 1 1 1 1 1 0 0 1 1
Uwagi 1
Pierwsza operacja:
0 0 0 0
0 1 1 1
0 1 1 1
0 1 1 1
Druga operacja:
0 0 0 0
0 1 1 1
1 1 1 1
0 0 1 1
Ograniczenia
Dla $100\%$ danych: $1\le n, m, q\le 2,000, \mathrm{lim} = \min(nm, 10^5)$.
| Test | $n,m$ | Właściwości specjalne |
|---|---|---|
| $1,2$ | $\le100$ | |
| $3,4,5,6$ | $\le600$ | |
| $7,8$ | Brak operacji 2 | |
| $9$ | Wszystkie operacje 1 przed operacjami 2 | |
| $10$ |
Puste pola oznaczają brak dodatkowych ograniczeń.
Uwagi
Jest to zadanie na podstawowe struktury danych.