[Buổi 6][Mảng cộng dồn & mảng hiệu][ADV] Bài 1: Lệnh hiệu chỉnh nhiều tầng


LÀM BÀI

Points: 100
Time limit: 2.0s
Memory limit: 256M

Author:
Problem types

Lệnh hiệu chỉnh nhiều tầng

Bối cảnh và bài toán

Một hệ thống có n tham số. Có m lệnh hiệu chỉnh đã định nghĩa sẵn; lệnh thứ i cộng một giá trị vào một đoạn tham số. Sau đó người quản trị gửi k yêu cầu, mỗi yêu cầu không tác động trực tiếp lên dữ liệu mà yêu cầu thực thi một đoạn liên tiếp các lệnh hiệu chỉnh trong danh sách.

Nếu mô phỏng từng yêu cầu rồi từng lệnh rồi từng phần tử, số thao tác có thể bùng nổ.

Yêu cầu

Tính mảng cuối cùng sau khi thực hiện tất cả yêu cầu.

Input

  • Dòng 1: n m k.
  • Dòng 2: n giá trị ban đầu.
  • m dòng: l r d mô tả một lệnh range-add.
  • k dòng: x y, yêu cầu thực thi mọi lệnh từ x đến y thêm một lần.

Output

In n giá trị cuối cùng.

Ràng buộc

  • 1 <= n, m, k <= 10^5
  • |a[i]| <= 10^5
  • |d[i]| <= 10^5
  • 1 <= l <= r <= n
  • 1 <= x <= y <= m

Chấm điểm

Subtask Điểm Điều kiện Official tests
S1 20% n, m, k ≤ 200 01–04
S2 30% n, m, k ≤ 7*10^4 05–10
S3 50% Không có ràng buộc bổ sung 11–20

Ví dụ 1

Input

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

Output

9 18 17

Giải thích. Mỗi lệnh được thực thi một số lần khác nhau tùy số yêu cầu phủ chỉ số lệnh đó; sau khi gom số lần thực thi mới áp chúng lên mảng.

Ví dụ 2

Input

1 1 1
1
1 1 1
1 1

Output

2

Giải thích. Lệnh duy nhất được gọi một lần và tăng phần tử duy nhất thêm 1.

Thông tin bài tập

Thuộc tính Giá trị
Mã bài DSA-M03-B06-ADV01
Buổi B06
Loại bài ADVANCED
Mức độ khó Khó (Hard)
Thời gian làm bài khuyến nghị 65 phút
Time limit 2 giây
Memory limit 256 MB
Tổng điểm 100
Chuẩn ngôn ngữ tham chiếu C++17

Nguồn: Phỏng theo Codeforces 295A — Greg and Array.

Tham khảo: https://codeforces.com/problemset/problem/295/A


Comments

There are no comments at the moment.

Zalo