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

Cộng và Căn Bậc Hai

Đề bài

Mô tả

Trên màn hình có một con số và hai nút bấm: nút + (cộng) và nút (căn bậc hai). Ban đầu trên màn hình hiển thị số 2. Trò chơi có n+1 cấp độ (level) và bạn bắt đầu ở cấp độ 1.

Khi đang ở cấp độ k, bạn có thể:

  1. Bấm nút +: số trên màn hình tăng thêm đúng k đơn vị. Nếu số trên màn hình là x thì nó trở thành x+k.
  2. Bấm nút : gọi số trên màn hình là x. Sau khi bấm, số trở thành x, đồng thời bạn lên cấp, tức cấp độ hiện tại trở thành k+1. Nút này chỉ bấm được khi x là một số chính phương, tức x=m2 với m là số nguyên dương.

Ngoài ra, sau mỗi lần bấm, nếu bạn đang ở cấp độ k và số trên màn hình là m, thì m phải là bội của k. Lưu ý điều kiện này chỉ được kiểm tra sau khi đã thực hiện lần bấm. Ví dụ, nếu bạn đang ở cấp độ 4 và số hiện tại là 100, bạn bấm nút và số trở thành 10. Tại thời điểm đó 10 không chia hết cho 4, nhưng lần bấm này vẫn hợp lệ, vì sau khi bấm bạn đã ở cấp độ 5, và 10 chia hết cho 5.

Bạn cần đạt tới cấp độ n+1. Nói cách khác, bạn cần bấm nút đúng n lần. Hãy xác định số lần bấm nút + trước khi bấm nút ở mỗi cấp độ.

Bạn chỉ cần tìm bất kỳ dãy thao tác nào đưa được tới cấp độ n+1, không nhất thiết phải tối thiểu số lần bấm.

Dữ liệu vào

  • Dòng duy nhất chứa một số nguyên n.

Dữ liệu ra

  • In ra n số nguyên không âm, mỗi số trên một dòng. Số thứ i là số lần cần bấm nút + trước khi bấm nút ở cấp độ i.

Mỗi số trong kết quả không được vượt quá 1018 (tuy nhiên số trên màn hình có thể lớn hơn 1018). Dữ liệu đảm bảo luôn tồn tại ít nhất một lời giải; nếu có nhiều đáp án, in ra đáp án nào cũng được.

Ràng buộc

  • 1n100000

Ví dụ

Input Output Giải thích
4 2
17
46
97
Cấp 1: từ 2 bấm + hai lần thành 2+2·1=4, bấm thành 2. Cấp 2: 2+17·2=36, bấm thành 6. Cấp 3: 6+46·3=144, bấm thành 12 (chia hết cho 4). Cấp 4: 12+97·4=400, bấm thành 20.
1 2 Từ 2 bấm + hai lần thành 4=22, bấm thành 2 để lên cấp 2.
3 2
17
46
Một dãy hợp lệ đưa tới cấp 4: các số chính phương đạt được lần lượt là 4,36,144.

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