[VTT Q4 Contest 13] Bài 3: Biến đổi dãy số [SUMMAX]

Xem dạng PDF

Gửi bài giải


Điểm: 3,00 (OI)
Giới hạn thời gian: 1.0s
Giới hạn bộ nhớ: 256M
Input: SUMMAX.INP
Output: SUMMAX.OUT

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

Bờm có một mảng ~a_1, a_2, \dots, a_n~. Anh được phép thực hiện nhiều nhất một thao tác (cũng có thể không làm gì) như sau: chọn hai chỉ số ~l~, ~r~ với ~1 \le l \le r \le n~ rồi đổi dấu mọi phần tử ~a_l, a_{l+1}, \dots, a_r~.

Chẳng hạn, với ~n = 5~, mảng ~[1, -2, 0, 3, -1]~, chọn ~l = 2~, ~r = 4~ thì mảng trở thành ~[1, 2, 0, -3, -1]~.

Hãy tìm tổng các phần tử lớn nhất có thể có của mảng sau khi thực hiện tối đa một thao tác như vậy.

Dữ liệu

  • Dòng đầu chứa số nguyên dương ~n~ (~1 \le n \le 2 \times 10^5~), độ dài của mảng ~a~.
  • Dòng thứ hai chứa ~n~ số nguyên ~a_1, a_2, \dots, a_n~ (~|a_i| \le 10^9~).

Kết quả

  • In ra một số nguyên: tổng lớn nhất đạt được sau khi thực hiện nhiều nhất một thao tác.

Ví dụ

SUMMAX.INP

6
-1 7 -4 -2 5 -8

SUMMAX.OUT

15

Giải thích: Đổi dấu đoạn ~[-4, -2, 5, -8]~ thành ~[4, 2, -5, 8]~, mảng mới là ~[-1, 7, 4, 2, -5, 8]~ có tổng 15.

Giới hạn

  • Subtask 1 (50% số điểm): ~n \le 1000~.
  • Subtask 2 (50% số điểm): không có ràng buộc gì thêm.

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.