|
We
have a matrix of size N
x N.
Each value of the matrix occupies an integer from [0, 9]. A few operations are going to
be performed on this matrix. We would like to know how the matrix looks like
after these operations are performed sequentially.
There
could be five different types of operations.
row a b
In this operation, row a is interchanged with row b.
col a b
In this operation, column a is interchanged with column b.
inc
In this operation, every cell value is increased by
1 (modulo 10). That is, if after adding 1, a cell value becomes 10 we change it
to 0.
dec
In this operation, every cell value is decreased by
1 (modulo 10). That is, if after subtracting 1, a cell value becomes -1 we
change it to 9.
transpose
In this operation, we simply transpose the matrix.
Transposing a matrix, denoted by AT, means turning all the rows of
the given matrix into columns and vice-versa.
Example:
1
2 3 1 4 7
4
5 6 à after transposing à 2 5 8
7
8 9 3 6 9
Input
The
input file starts with an integer T(T<50) that
indicates the number of test cases. Each case starts with a positive integer N(N<10) that represents the size of the matrix. The next
N lines contain N integers each. The value of each integer is in the range [0,
9]. Next there is a line with an integer M(M<50).
Each of the next M lines contain an operation each. If the command is row a
b or col a b, then you can assume
1 <= a,b <= N and a !=
b.
Output
For
each case, output the case number on the first line. Then on the next N lines
output the content of the final matrix. Print a blank line after each case
(even after the very last one).
Sample Input |
Output for Sample
Input |
2 4 1234 5678 1234 5678 1 transpose 3 000 111 000 2 row 1 2 inc |
Case #1 1515 2626 3737 4848 Case #2 222 111 111 |
ProblemSetter:
Sohel Hafiz