TLE-oj Cup Round 1 - Cập nhật bảng

Xem PDF

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

Không có bình luận nào.