trang chủ / đề bài / minhay22

Thu nhỏ đống cỏ

Đề bài

Mô tả

Có N đống cỏ xếp thành một hàng, đống thứ i có chiều cao hi. Bạn có thể hoán đổi hai đống cỏ đứng liền kề nhau bao nhiêu lần tuỳ ý, với điều kiện chênh lệch chiều cao của hai đống đó không vượt quá K.

Hãy tìm dãy chiều cao nhỏ nhất theo thứ tự từ điển có thể đạt được.

Dữ liệu vào

  • Dòng đầu tiên chứa hai số nguyên N và K.
  • N dòng tiếp theo, dòng thứ i chứa số nguyên hi.

Dữ liệu ra

In ra N dòng, dòng thứ i là chiều cao của đống cỏ thứ i trong dãy tìm được.

Ràng buộc

  • 1≤N≤105
  • 1≤hi≤109
  • 1≤K≤109

Subtask 1 (10%): N≤100

Subtask 2 (20%): N≤5000

Subtask 3 (70%): Không có ràng buộc thêm.

Ví dụ

Input Output Giải thích
5 3
7
7
3
6
2
6
7
7
2
3
Đống h5=2 muốn lên đầu nhưng bị chặn bởi h4=6 (chênh 4>3). Đống h3=3 vượt được h4=6 (chênh 3≤3) nhưng bị chặn bởi h1=7 (chênh 4>3). Đống h4=6 vượt được cả h3=3, h2=7 và h1=7 nên lên được vị trí đầu tiên. Kết quả tối ưu là 6,7,7,2,3.
4 2
3
1
4
2
1
2
3
4
Đống h2=1 vượt qua h1=3 (chênh 2≤2) để lên đầu. Sau đó h4=2 vượt qua h3=4 (chênh 2≤2) rồi vượt tiếp h1=3 (chênh 1≤2). Dãy kết quả là 1,2,3,4.

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.402 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.6 gforth 0.7.3 gfortran 15.3.0 go 1.27.3 groovyc 5.1.3 javac 26.0.2.1 node 26.12.1 julia 1.13.2 kotlinc 2.4.21 lean 4.35.0 sbcl 2.2.9 lua 5.5.1 nim 2.2.12 fpc 3.2.2 fpc-themis 3.2.2 perl 5.42.3 php 8.5.12 pike 8.0 swipl 9.0.4 pypy3 7.3.23 python3 3.15.1 racket 8.7 ruby 4.0.8 rustc 1.99.1 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 swiftc 6.4.1 tclsh 8.6 bun 1.4.4 deno 2.9.8 v 0.5.2 zig 0.17.0