Nộp bài
Điểm:
1700 (thành phần)
Thời gian:
0.75s
Bộ nhớ:
256M
Input:
UPDATE.inp
Output:
UPDATE.out
Tác giả:
Dạng bài
Ngôn ngữ cho phép
C, C++, Haskell, NASM, pypy, pypy3, Python, scratch, text
Cho một bảng n hàng, m cột. Ô giao giữa hàng i và cột j được kí hiệu là ô (i,j). Ban đầu mỗi ô đều có giá trị bằng 0. Cho q truy vấn, thuộc một trong ba loại sau:
- 1\, x: Tăng tất cả các số trong bảng lên x đơn vị (1\leq x\leq 10^9)
- 2\, x\, l\, r: Tăng ô (x,i) lên (i-l+1)^2 đơn vị với mọi l\leq i\leq r (1\leq x\leq n, 1\leq l\leq r\leq m)
- 3\, x\, l\, r: Tăng ô (i,x) lên (i-l+1)^2 đơn vị với mọi l\leq i\leq r (1\leq x\leq m, 1\leq l\leq r\leq n)
Yêu cầu: In ra bảng sau tất cả q truy vấn.
Input, Output và Scoring
Input (UPDATE.inp
)
- Dòng đầu tiên gồm ba số nguyên dương n,m,q (1\leq m,n\leq 1000, 1\leq q\leq 10^6).
- q dòng tiếp theo, mỗi dòng gồm các truy vấn thuộc một trong ba loại trên.
Output (UPDATE.out
)
- In ra m dòng, mỗi dòng in ra n số. Số thứ j trong dòng thứ i in ra phần dư của giá trị ô (i,j) sau khi chia cho 10^9+7.
Sample
Input (UPDATE.inp
)
3 2 3
2 3 1 2
3 1 2 3
1 2
Output (UPDATE.out
)
2 2
3 2
7 6
Bình luận