Problem C. AMAZINGMIGHTYYYYYYYYYYYYYYYYY!!!!!!! (Chuyên KHTN 2025)

Xem dưới dạng PDF

Gửi bài giải

Điểm: 70
Giới hạn thời gian: 1.0s
Giới hạn bộ nhớ: 256M

Tác giả:
Kiểu bài tập

Cho một mảng \(a\) có độ dài \(n\). Mỗi phần tử là số nguyên trong đoạn từ \(1\) đến \(m\) hoặc là \(-1\).

Bạn cần tính tổng: \[ ∑_{i<j} |a_i - a_j| \]

trong mọi cách điền số từ \(1\) đến \(m\) vào các vị trí \(-1\) trong mảng \(a\), lấy kết quả modulo \(10^9 + 7\).

Tuy nhiên, sau mỗi lần cập nhật đoạn \(l\) đến \(r\) thành giá trị \(v\) (v có thể là \(-1\)), bạn cần tính lại đáp án theo mảng mới.

Input

  • Dòng đầu gồm 3 số nguyên \(n\), \(m\), \(q\) (\(1 \le n, m, q \le 350000\)).
  • Dòng thứ hai gồm \(n\) số nguyên \(a_1, ..., a_n\) (\(1 \le a_i \le m\) hoặc \(a_i = -1\)).
  • \(q\) dòng tiếp theo, mỗi dòng gồm 3 số nguyên \(l\), \(r\), \(v\) (\(1 \le l \le r \le n\), \(-1 \le v \le m\), \(v ≠ 0\)).

Output

  • Gồm \(q\) dòng, mỗi dòng là kết quả sau lần cập nhật tương ứng, lấy mod \(10^9 + 7\).

Examples

Input

2 4 3
1 2
1 1 1
1 2 -1
1 1 1

Output

1
20
6

Input

4 2 5
2 1 2 1
3 4 1
2 3 1
1 2 1
3 4 2
1 1 2

Output

3
3
0
4
3

Scoring

  • Subtask 1 (5%): \(n, m, q \le 7\)
  • Subtask 2 (15%): \(n, m, q \le 100\)
  • Subtask 3 (15%): \(n, m, q \le 500\)
  • Subtask 4 (25%): \(n, m, q \le 5000\)
  • Subtask 5 (40%): \(n, m, q \le 350000\)

Nhận xét

Không có ý kiến tại thời điểm này.