trang chủ / bài tập / romasign

Roma và đổi dấu

Đề bài

Mô tả

Cho một dãy gồm n số nguyên a1,a2,,an được sắp xếp theo thứ tự không giảm. Bạn phải thực hiện đúng k lần đổi dấu: mỗi lần chọn một phần tử bất kỳ trong dãy rồi nhân nó với 1. Một phần tử có thể được chọn nhiều lần (đổi dấu nhiều lần).

Hãy thực hiện k lần đổi dấu sao cho tổng của dãy sau khi biến đổi là lớn nhất có thể.

Dữ liệu vào

  • Dòng đầu chứa hai số nguyên nk.
  • Dòng thứ hai chứa n số nguyên a1a2an (dãy đã được sắp không giảm).

Dữ liệu ra

  • In ra một số nguyên duy nhất là tổng lớn nhất đạt được sau đúng k lần đổi dấu.

Ràng buộc

  • 1n,k105
  • |ai|104

Ví dụ

Input Output Giải thích
3 2
-1 -1 1
3 Đổi dấu hai số 1 thành 1, được dãy [1,1,1], tổng bằng 3.
3 1
-1 -1 1
1 Chỉ được đổi dấu đúng một lần: đổi số 1 đầu tiên thành 1, được dãy [1,1,1], tổng bằng 1.
1 2
-1
-1 Đổi dấu số 1 thành 1 rồi lại thành 1 (đúng hai lần), tổng bằng 1.

Bình luận

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

gnatmake 12.2.0 a68g 3.1.2 nasm 2.16.1 as_x64 2.46 awk 1.3.4 gcc 16.1.0 csc 6.12.0.200 g++ 16.1.0 g++-themis 16.1.0 g++17 16.1.0 g++20 16.1.0 g++23 16.1.0 clang++ 22.1.6 dmd 2.112.0 dart 3.12.1 gforth 0.7.3 gfortran 12.2.0 go 1.26.3 groovyc 5.0.6 javac 25.0.3 node 26.2.0 kotlinc 2.3.21 sbcl 2.2.9 lua 5.4.8 nim 2.2.10 fpc 3.2.2 fpc-themis 3.2.2 perl 5.36.0 php 8.5.6 pike 8.0 pypy3 7.3.23 python3 3.14.5 racket 8.7 ruby 4.0.5 rustc 1.96.0 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 tclsh 8.6 bun 1.3.14 deno 2.8.1 v 0.5.1 zig 0.16.0