Đồi

Đề bài

Mô tả

Cho dãy n ngọn đồi với chiều cao lần lượt là a1,a2,,an. Người ta muốn xây nhà trên một số ngọn đồi, nhưng để đảm bảo mỹ quan, một ngôi nhà chỉ có thể đặt trên ngọn đồi cao hơn nghiêm ngặt cả hai ngọn đồi kề (nếu có).

Ví dụ với dãy chiều cao 5,4,6,2 thì chỉ có thể xây nhà trên ngọn đồi chiều cao 5 và ngọn đồi chiều cao 6.

Có một chiếc máy xúc có thể giảm chiều cao của một ngọn đồi tuỳ ý đi 1 đơn vị trong 1 giờ làm việc. Máy xúc chỉ làm việc trên một ngọn đồi tại một thời điểm. Chiều cao có thể giảm xuống 0 hoặc thậm chí âm. Không thể tăng chiều cao bất kỳ ngọn đồi nào.

Với mỗi k từ 1 đến n/2, hãy tính số giờ tối thiểu cần thiết để san phẳng các ngọn đồi sao cho có ít nhất k ngọn đồi đủ điều kiện xây nhà.

Dữ liệu vào

  • Dòng đầu chứa số nguyên n — số ngọn đồi.
  • Dòng thứ hai chứa n số nguyên a1,a2,,an — chiều cao các ngọn đồi.

Dữ liệu ra

In ra đúng n/2 số nguyên trên một dòng, cách nhau bởi dấu cách. Số thứ i là số giờ tối thiểu để có thể xây được ít nhất i ngôi nhà.

Ràng buộc

  • 1n5000
  • 1ai100000

Ví dụ

Input Output Giải thích
5
1 2 3 2 2
0 1 3 Với k=1: ngọn đồi 3 đã thoả mãn, cần 0 giờ. Với k=2: giảm a4 xuống 1, khi đó các ngọn đồi 35 đều cao hơn các ngọn đồi kề, mất 1 giờ. Với k=3: mất 3 giờ.
3
1 2 3
0 2 Với k=1: ngọn đồi 3 đã cao nhất, không cần giảm. Với k=2: cần giảm a2 xuống 0, mất 2 giờ; khi đó ngọn đồi 13 đều thoả mãn.
5
1 1 1 1 1
1 2 2 Với k=1: giảm a2 xuống 0 để ngọn đồi 1 thoả mãn, mất 1 giờ. Với k=2: giảm a2a4 để ngọn đồi 1,3 thoả mãn, mất 2 giờ. Với k=3: giảm a2,a4 để ngọn đồi 1,3,5 đều thoả mãn, vẫn mất 2 giờ.

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