eolymp
bolt
Try our new interface for solving problems
Məsələlər

Matrix Operation

Matrix Operation

Zaman məhdudiyyəti 2 saniyə
Yaddaşı istafadə məhdudiyyəti 64 MiB

N×N

You are a student looking for a job. Today you had an employment examination for an IT company. They asked you to write an efficient program to perform several operations. First, they showed you an square matrix and a list of operations. All operations but one modify the matrix, and the last operation outputs the character in a specified cell. Please remember that you need to output the final matrix after you finish all the operations.

Followings are the detail of the operations:

WR r c v (Write operation) write a integer v into the cell (r,c) (

1 ≤ v ≤ 1,000,000

) CP r1 c1 r2 c2 (Copy operation) copy a character in the cell (r1, c2) into the cell (r2, c2) SR r1 r2 (Swap Row operation) swap the r1-th row and r2-th row SC c1 c2 (Swap Column operation) swap the c1-th column and c2-th column RL (Rotate Left operation) rotate the whole matrix in counter-clockwise direction by 90 degrees RR (Rotate Right operation) rotate the whole matrix in clockwise direction by 90 degrees RH (Reflect Horizontal operation) reverse the order of the rows RV (Reflect Vertical operation) reverse the order of the columns

Giriş verilənləri

(1 ≤ N, Q ≤ 40,000)

(1 ≤ A, B, C ≤ 1,000,000)

A_{r,c}=(r*A+c*B)modC

(1 ≤ r, c N)

(1 ≤ D E N, 1 ≤ F G N, ED ≤ 1,000, GF ≤ 1,000)

First line of each testcase contains nine integers. First two integers in the line, N and Q, indicate the size of matrix and the number of queries, respectively . Next three integers, A B, and C, are coefficients to calculate values in initial matrix , and they are used as follows: where r and c are row and column indices, respectively . Last four integers, D, E, F, and G, are coefficients to compute the final hash value mentioned in the next section . Each of next Q lines contains one operation in the format as described above.

Çıxış verilənləri

Output a hash value h computed from the final matrix B by using following pseudo source code.

h <- 314159265
for r = D...E
for c = F...G
h <- (31 * h + B_{r,c}) mod 100,000,007

where "<-" is a destructive assignment operator, "for i = S...T" indicates a loop for i from S to T (both inclusive), and "mod" is a remainder operation.

Nümunə

Giriş verilənləri #1
2 1 3 6 12 1 2 1 2
WR 1 1 1
Çıxış verilənləri #1
676573821
Mənbə Japan Alumni Group Winter Contest 2012