BIẾN ĐỔI

Cho bảng gồm \(n\) dòng \(m\) cột (các dòng đánh số từ 1 đến \(n\), các cột đánh số từ \(1\) đến \(m\)). Ô giao giữa dòng \(i\) và cột \(j\) gọi là ô \((i;j)\) có giá trị \(A\lbrack i\rbrack\lbrack j\rbrack\ (1 \leq i \leq n;1 \leq j \leq m)\). Ban đầu giá trị trên tất cả các ô bằng không.

\(Q\) thao tác (đánh số từ \(1\) đến \(Q\)), mỗi thao tác là một trong 4 loại sau:

  • \(1\ \ i\ \ j\): Nếu\(\ A\lbrack i\rbrack\lbrack j\rbrack = 0\) thì \(A\lbrack i\rbrack\lbrack j\rbrack = 1\);

  • \(2\ \ i\ \ j\): Nếu\(\ A\lbrack i\rbrack\lbrack j\rbrack = 1\) thì \(A\lbrack i\rbrack\lbrack j\rbrack = 0\);

  • \(3\ \ i\): \(A\lbrack i\rbrack\lbrack j\rbrack = 1 - A\lbrack i\rbrack\lbrack j\rbrack\) \(\forall j\) thỏa mãn \(1 \leq j \leq m\);

  • \(4\ \ k\): Đưa bảng về trạng thái sau thao tác thứ \(k\). Nếu \(k = 0\) thì bảng sẽ trở lại trạng thái ban đầu, tức là \(A\lbrack i\rbrack\lbrack j\rbrack = 0\ \forall i,\ j\) thỏa mãn \(1 \leq i \leq n,1 \leq j \leq m\).

Sau mỗi thao tác, hãy cho biết có bao nhiêu ô \((i;j)\)\(A\lbrack i\rbrack\lbrack j\rbrack = 1\).

Dữ liệu:

  • Dòng đầu gồm \(3\) số nguyên \(n,m,Q\ (1 \leq n,m \leq 10^{3},\ 1 \leq Q \leq 10^{5})\) là kích thước của bảng và số thao tác;

  • \(Q\) dòng tiếp theo là các thao tác theo thứ tự đã được mô tả ở trên. Dữ liệu đảm bảo rằng mọi thao tác đều hợp lệ.

Kết quả:

  • Ghi ra \(Q\) dòng, dòng thứ \(t\ (1 \leq t \leq Q)\ \)ghi số lượng ô \((i;j)\)\(A\lbrack i\rbrack\lbrack j\rbrack = 1\) sau thao tác thứ \(t\).

Ví dụ:

Input Output Giải thích
4 2 6
3 2
2 2 2
3 3
3 2
2 2 2
3 2
2
1
3
3
2
4
Bảng thu được sau từng thao tác như sau:

Input Output Giải thích
3 3 5
3 2
1 1 2
4 1
3 3
2 3 2
3
4
3
6
5
Bảng thu được sau từng thao tác như sau:

Chú ý:

  • Subtask 1 (40% số điểm): \(n,m,Q \leq 100\);

  • Subtask 2 (20% số điểm): Dữ liệu không có thao tác loại \(4\);

  • Subtask 3 (40% số điểm): Không có ràng buộc bổ sung.

Bạn cần đăng nhập để nộp bài

hpcode.edu.vn
Code tích cực
Trong 24h
  1. npk1605 (5/10)
  2. hungeazy08 (4/26)
  3. tung (2/5)
Trong 7 ngày
  1. nguyenanhvu (40/64)
  2. khieuquan (35/59)
  3. ngokhang (27/55)
Trong 30 ngày
  1. quechi (85/105)
  2. dangphong3108 (79/125)
  3. kiennhientv (79/179)
Thống kê
AC/Sub: 97887/180710
Pascal: 17121
C++: 130348
Python: 33199
Lượt xem/tải tests: 38905

Lưu Hải Phong - 2020
[email protected]