Chọn ĐTQG ĐHSPHN 2026 - Mái che

Xem dạng PDF

Gửi bài giải

Điểm: 120,00 (OI)
Giới hạn thời gian: 1.0s
Giới hạn bộ nhớ: 1G
Input: stdin
Output: stdout

Tác giả:
Dạng bài
Ngôn ngữ cho phép
C, C++, Java, Output Only, Pascal, PyPy, Python, Scratch, TEXT

Trên một trục số có ~n~ đống thóc. Đống thứ ~i~ nằm tại vị trí ~x_i~ và có lượng thóc ~v_i~. Nhiều đống thóc có thể cùng vị trí.

Một mái che là một đoạn đóng có độ dài ~d~. Một đống thóc nằm trên mái che, kể cả tại hai đầu mút, được xem là được phủ. Trong mỗi truy vấn, bạn được đặt đúng ~k~ mái che có cùng độ dài ~d~. Nếu một đống thóc được nhiều mái che phủ thì lượng thóc của nó cũng chỉ được tính một lần.

Hãy tìm tổng lượng thóc lớn nhất có thể được phủ trong mỗi truy vấn.

Input

  • Dòng đầu chứa hai số nguyên ~n~ và ~q~ (~1 \le n \le 10^5~, ~1 \le q \le 20~).

  • Dòng thứ hai chứa ~n~ số nguyên ~x_1,x_2,\dots,x_n~ (~0 \le x_i \le 10^9~).

  • Dòng thứ ba chứa ~n~ số nguyên ~v_1,v_2,\dots,v_n~ (~1 \le v_i \le 10^9~).

  • Mỗi dòng trong ~q~ dòng tiếp theo chứa hai số nguyên ~k~ và ~d~ (~1 \le k \le n~, ~0 \le d \le 10^9~).

Output

Với mỗi truy vấn, in ra trên một dòng tổng lượng thóc lớn nhất có thể được phủ.

Scoring

Subtask Điểm Ràng buộc
1 ~50\%~ ~n \le 5000~
2 ~50\%~ Không có giới hạn gì thêm

Sample Input 1

5 3
0 2 3 8 10
5 4 7 6 3
1 2
2 2
1 10

Sample Output 1

11
20
25

Notes

Ở truy vấn đầu, đặt mái che trên đoạn ~[1,3]~ để phủ hai đống tại vị trí ~2~ và ~3~, thu được ~4+7=11~ đơn vị thóc.

Ở truy vấn thứ hai, có thể dùng thêm mái che ~[8,10]~, nên tổng lượng thóc được phủ là ~11+6+3=20~. Ở truy vấn cuối, một mái che dài ~10~ phủ được tất cả các đống thóc.


Bình luận

Hãy đọc nội quy trước khi bình luận.


Không có bình luận tại thời điểm này.