trang chủ / đề bài / permrestb

Khôi phục hoán vị từ dãy B

Đề bài

Mô tả

Cho một hoán vị A={a1,a2,…,an} của n số nguyên đầu tiên {1,2,…,n} và một số nguyên dương k.

Với mỗi giá trị i (từ 1 đến n), ký hiệu bi là số phần tử aj đứng bên trái vị trí của giá trị i trong A (tức aj nằm trước phần tử có giá trị bằng i) sao cho aj≥i+k.

Ví dụ, nếu n=5 và A={5,1,4,2,3} thì với k=2 ta có B={1,2,1,0,0}.

Bạn được cho n, k và dãy B={b1,b2,…,bn}. Hãy khôi phục lại hoán vị A có thứ tự từ điển nhỏ nhất sinh ra dãy B đã cho. Dữ liệu đảm bảo luôn tồn tại ít nhất một hoán vị thỏa mãn.

Dữ liệu vào

  • Dòng đầu chứa hai số nguyên n và k.
  • Dòng thứ hai chứa n số nguyên b1,b2,…,bn.

Dữ liệu ra

  • In ra trên một dòng n số nguyên là hoán vị A có thứ tự từ điển nhỏ nhất thỏa mãn.

Ràng buộc

  • 1≤n≤1000
  • 1≤k≤n
  • 0≤bi≤n−1

Ví dụ

Input Output Giải thích
5 2
1 2 1 0 0
4 1 5 2 3 Với A={4,1,5,2,3}: giá trị 1 ở vị trí 2, bên trái có a1=4≥1+2 nên b1=1. Giá trị 2 ở vị trí 4, bên trái có 4,5≥2+2 nên b2=2. Tương tự b3=1, b4=b5=0. Đây là hoán vị nhỏ nhất theo thứ tự từ điển.
4 2
1 0 0 0
2 3 1 4 Giá trị 1 ở vị trí 3, bên trái có 3≥1+2 nên b1=1; các giá trị còn lại đều có bi=0.

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