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

Chia Dãy

Đề bài

Mô tả

Cho một dãy số nguyên a1,a2,,an và một số nguyên k.

Bạn cần chia dãy này thành k đoạn con liên tiếp không rỗng. Mỗi phần tử của dãy phải thuộc đúng một đoạn con. Gọi f(i) là chỉ số của đoạn con mà phần tử thứ i thuộc về. Các đoạn con được đánh số từ trái sang phải, từ 1 đến k.

Chi phí của cách chia được định nghĩa bằng:

i=1n(ai·f(i))

Hãy tính chi phí lớn nhất có thể đạt được khi chia dãy a thành k đoạn con liên tiếp không rỗng.

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 a1,a2,,an.

Dữ liệu ra

  • In ra một số nguyên duy nhất, là chi phí lớn nhất có thể đạt được.

Ràng buộc

  • 1kn3·105
  • |ai|106

Ví dụ

Input Output Giải thích
4 1
3 -1 6 0
8 Chỉ có một đoạn, mọi f(i)=1, chi phí =31+6+0=8.
5 2
-1 -2 5 -4 8
15 Chia thành [1,2][5,4,8]: (12)·1+(54+8)·2=3+18=15.
7 6
-3 0 -1 -2 -2 -4 -1
-45 Với k=6 đoạn trên 7 phần tử, chỉ một đoạn có hai phần tử.

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.47 awk 1.3.4 gcc 16.2.0 dotnet 10.0.400 g++ 16.2.0 g++-themis 16.2.0 g++17 16.2.0 g++20 16.2.0 g++23 16.2.0 clang++ 22.1.8 dmd 2.113.0 dart 3.13.2 gforth 0.7.3 gfortran 12.2.0 go 1.27.0 groovyc 5.1.1 javac 25.0.4 node 26.8.1 julia 1.12.7 kotlinc 2.4.10 lean 4.33.1 sbcl 2.2.9 lua 5.4.9 nim 2.2.10 fpc 3.2.2 fpc-themis 3.2.2 perl 5.36.0 php 8.5.10 pike 8.0 swipl 9.0.4 pypy3 7.3.23 python3 3.14.7 racket 8.7 ruby 4.0.6 rustc 1.98.0 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 swiftc 6.3.3 tclsh 8.6 bun 1.4.0 deno 2.9.6 v 0.5.2 zig 0.16.0