TRUY VẤN TỔNG LỚN NHẤT

Xem dạng PDF

Gửi bài giải

Điểm: 0,90 (OI)
Giới hạn thời gian: 1.5s
Giới hạn bộ nhớ: 256M
Input: stdin
Output: stdout

Dạng bài
Ngôn ngữ cho phép
C, C++, Go, Java, Kotlin, Pascal, PyPy, Python, Rust, Scratch

Cho một mảng ~a~ gồm ~n~ phần tử và ~q~ truy vấn có dạng:

  • "~l~ ~r~": Trong các đoạn con ~a_x, a_{x+1}, \ldots, a_y~ mà ~l \le x \le y \le r~, đoạn nào có tổng các phần tử lớn nhất?

Yêu cầu: Với mỗi truy vấn, bạn hãy tìm giá trị của tổng đoạn có tổng lớn nhất đó.

Input
  • Dòng đầu tiên chứa số ~n~ ~(1 \le n \le 50\,000)~.
  • Dòng thứ hai chứa ~n~ số ~a_1, a_2, \ldots, a_n~ là các phần tử của mảng ~(-40\,000 \le a_i \le 40\,000)~.
  • Dòng thứ ba chứa số ~q~ ~(1 \le q \le 10^5)~.
  • ~q~ dòng tiếp theo, mỗi dòng chứa hai số ~l~ và ~r~ ~(1 \le l \le r \le n)~ mô tả một truy vấn.
Output
  • Với mỗi truy vấn, in ra đáp án của truy vấn đó trên một dòng.

Sample Input
10
5 18 12 -3 -19 6 -7 -10 -16 -10
10
1 10
2 8
9 10
3 7
4 6
7 9
1 4
2 10
3 9
1 5
Sample Output
35
30
-10
12
6
-7
35
30
12
35

Đang tải...