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

Luyện tập của Polycarp

Đề bài

Mô tả

Polycarp có một danh sách gồm n bài tập với độ khó lần lượt là a1,a2,,an. Anh dự định luyện tập trong đúng k ngày. Mỗi ngày anh phải giải ít nhất một bài, giải các bài theo đúng thứ tự trong danh sách, không được bỏ qua bài nào và không giải lại bài đã giải. Như vậy, mỗi ngày Polycarp giải một đoạn liên tiếp các bài, và sau k ngày anh giải hết toàn bộ n bài.

Lợi ích của ngày thứ j là độ khó lớn nhất trong số các bài giải ngày hôm đó: nếu ngày đó anh giải các bài từ vị trí l đến r thì lợi ích là maxlirai. Tổng lợi ích là tổng lợi ích của cả k ngày.

Hãy phân chia toàn bộ n bài thành k ngày sao cho tổng lợi ích là lớn nhất.

Dữ liệu vào

  • Dòng đầu chứa hai số nguyên nk (1kn2000) là số bài tập và số ngày.
  • Dòng thứ hai chứa n số nguyên a1,a2,,an (1ai2000) là độ khó các bài tập theo thứ tự.

Dữ liệu ra

  • Dòng đầu in ra tổng lợi ích lớn nhất.
  • Dòng thứ hai in ra đúng k số nguyên dương t1,t2,,tk (với t1+t2++tk=n), trong đó tj là số bài Polycarp giải trong ngày thứ j để đạt được tổng lợi ích lớn nhất đó.

Nếu có nhiều cách phân chia cho cùng tổng lợi ích lớn nhất, in ra một cách bất kỳ.

Ràng buộc

  • 1kn2000
  • 1ai2000

Ví dụ

Input Output Giải thích
8 3
5 4 2 6 5 1 9 2
20
1 3 4
Chia thành [5], [4, 2, 6], [5, 1, 9, 2]. Tổng lợi ích 5+6+9=20. Đây chỉ là một trong nhiều cách cho cùng tổng lớn nhất.
5 1
1 1 1 1 1
1
5
Chỉ có một ngày nên phải giải cả 5 bài; lợi ích là max=1.
4 2
1 2000 2000 2
4000
2 2
Chia thành [1, 2000], [2000, 2], tổng lợi ích 2000+2000=4000.

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