BIỂU THỨC

Một dãy gồm \(n\) số nguyên không âm \(a_{1},\ a_{2},...,\ a_{n}\) được viết thành một hàng ngang, giữa hai số liên tiếp có một khoảng trắng, như vậy có tất cả \((n - 1)\) khoảng trắng. Người ta muốn đặt \(k\) dấu cộng và \((n - 1 - k)\) dấu trừ vào \((n - 1)\) khoảng trắng đó để nhận được một biểu thức có giá trị lớn nhất.

Ví dụ, với dãy gồm 5 số nguyên 28, 9, 5, 1, 69 và \(k\ = \ 2\) thì cách đặt 28+9-5-1+69 là biểu thức có giá trị lớn nhất.

Yêu cầu: Cho dãy gồm n số nguyên không âm \(a_{1},\ a_{2},...,\ a_{n}\) và số nguyên dương \(k\), hãy tìm cách đặt \(k\) dấu cộng và \((n - 1 - k)\) dấu trừ vào \((n - 1)\) khoảng trắng để nhận được một biểu thức có giá trị lớn nhất.

Dữ liệu vào:

  • Dòng đầu chứa hai số nguyên dương \(n,\ k\ (k\ < \ n)\);

  • Dòng thứ hai chứa \(n\) số nguyên không âm \(a_{1},\ a_{2},...,\ a_{n}\ (a_{i}\ \leq \ 10^{6}\) với mọi \(1 \leq \ i\ \leq \ n)\).

Kết quả:

+ Ghi một số nguyên là giá trị của biểu thức đặt được.

Ví dụ:

Input Output
5 2
28 9 5 1 69
100

Ghi chú:

  • Có 50% số test ứng với 50% số điểm có \(n \leq \ 10^{5}\)\(k\ = \ 1\);

  • Có 50% số test còn lại ứng với 50% số điểm có \(n\ \leq \ 10^{5}\);

Bạn cần đăng nhập để nộp bài

hpcode.edu.vn
Code tích cực
Trong 24h
  1. qtaydzs1tg (17/23)
  2. ducanhbc (16/23)
  3. duythai (12/18)
Trong 7 ngày
  1. haiyen2011 (69/149)
  2. khanhchi_29 (66/80)
  3. qtaydzs1tg (57/90)
Trong 30 ngày
  1. nongvantien11 (115/189)
  2. trungo0 (112/199)
  3. ngocbichh (110/267)
Thống kê
AC/Sub: 120817/226949
Pascal: 18142
C++: 157988
Python: 50747
Lượt xem/tải tests: 41021

Lưu Hải Phong - 2020
[email protected]