Điều hướng chính

Nhắn tin NQ Coding

Ngôn ngữ

Phím tắt

/
Chuyển đến ô tìm bài
g p
Đi đến bài tập
g c
Đi đến kỳ thi
g u
Đi đến người dùng
?
Mở trợ giúp phím tắt

Bài tập dpthaotacxoa

Thao tác xóa

Dễ Quy hoạch động

  • 100 Điểm
  • 1.0s Thời gian
  • 256M Bộ nhớ
  • 0% Tỉ lệ AC
  • 0 Số AC

Cho mảng \(A\) gồm \(n\) phần tử nguyên. Bạn có thể thực hiện thao tác sau không quá \(k\) lần: chọn hai chỉ số \(l, r\) sao cho \(1 \le l \le r \le n\) và gán \(0\) cho tất cả các phần tử \(A_l, A_{l+1}, \ldots, A_r\).

Tìm tổng lớn nhất có thể của \(A\) sau khi thực hiện một số thao tác (có thể thực hiện ít hơn \(k\) lần, kể cả không thực hiện lần nào).

Input

  • Dòng đầu tiên gồm hai số nguyên \(n, k\) (\(1 \le n, k \le 5000\)).

  • Dòng tiếp theo gồm \(n\) số nguyên \(A_1, A_2, \ldots, A_n\) (\(|A_i| \le 10^9\)).

Output

In ra một số nguyên duy nhất là tổng lớn nhất có thể của mảng \(A\) sau khi thực hiện các thao tác.

Example

Input:

4 1
1 -3 1 -10

Output:

1

Note

Với ví dụ trên, chọn \(l = 2, r = 4\) và gán \(0\) cho \(A_2, A_3, A_4\), mảng trở thành \([1, 0, 0, 0]\) với tổng bằng \(1\), đây là tổng lớn nhất có thể đạt được khi chỉ dùng tối đa \(1\) thao tác.

Bình luận

Chưa có bình luận nào.