Trò chơi giáo dục

Đề bài

Mô tả

Cho dãy gồm n số nguyên không âm a1,a2,,an.

Một nước đi được thực hiện như sau: chọn một chỉ số i (1in) sao cho ai>0 và một số nguyên t0 sao cho i+2tn, rồi giảm ai đi 1 và tăng ai+2t lên 1. Nói cách khác, ta chuyển một đơn vị từ vị trí i sang vị trí i+2t, với khoảng cách nhảy luôn là một luỹ thừa của 2.

Ví dụ, với n=4a=(1,0,1,2), ta có thể chọn i=3,t=0 để được a=(1,0,0,3), hoặc chọn i=1,t=1 để được a=(0,0,2,2).

Với mỗi k từ 1 đến n1, hãy tính số nước đi ít nhất cần thực hiện để k phần tử đầu tiên a1,a2,,ak đều bằng 0.

Các giá trị k được xét hoàn toàn độc lập với nhau: mỗi câu trả lời đều được tính từ dãy ban đầu, chứ không phải từ dãy sau khi đã xử lý k nhỏ hơn.

Dữ liệu vào

  • Dòng đầu tiên chứa số nguyên n.
  • Dòng thứ hai chứa n số nguyên a1,a2,,an.

Dữ liệu ra

In ra đúng n1 dòng. Dòng thứ k chứa số nước đi ít nhất cần thiết để a1,a2,,ak đều bằng 0.

Ràng buộc

  • 2n2000
  • 0ai104

Ví dụ

Input Output Giải thích
4
1 0 1 2
1
1
3
Với k=1: chuyển đơn vị ở vị trí 1 sang vị trí 2 (t=0), tốn 1 nước đi. Với k=2: cùng dãy đó, chỉ cần đưa đơn vị ở vị trí 1 sang vị trí 3 (t=1), vẫn tốn 1 nước đi. Với k=3: đơn vị ở vị trí 1 phải đi tới vị trí 4, mà 41=3 không phải luỹ thừa của 2 nên cần 2 nước đi; đơn vị ở vị trí 3 chỉ cần 1 nước đi. Tổng cộng 3.
8
1 2 3 4 5 6 7 8
1
3
6
10
16
24
40
Với k4, mọi đơn vị trong tiền tố đều thoát ra ngoài bằng đúng 1 nước đi, nên đáp án là tổng a1++ak. Với k=5, đơn vị ở vị trí 1 cần vượt qua khoảng cách từ 5 đến 7, không khoảng cách nào là luỹ thừa của 2, nên nó tốn 2 nước đi; đáp án là 15+1=16.

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