PolandBall và Đa giác

Đề bài

Mô tả

Cho đa giác lồi n đỉnh được đánh số từ 1 đến n theo chiều kim đồng hồ. Đa giác có tính chất: không có ba đường chéo nào cùng giao nhau tại một điểm.

Cho số nguyên k thỏa mãn gcd(n,k)=1. Lặp lại n lần thao tác sau, bắt đầu từ đỉnh 1:

  • Gọi x là đỉnh đang đứng (ở lần đầu tiên x=1). Vẽ một đoạn thẳng từ x tới đỉnh thứ k tiếp theo theo chiều kim đồng hồ; đó là đỉnh x+k nếu x+kn, hoặc đỉnh x+kn nếu ngược lại. Sau đó chuyển tới đỉnh vừa nối.

Sau mỗi lần vẽ, hãy đếm số phần mà các cạnh đa giác và các đoạn đã vẽ chia mặt phẳng bên trong đa giác thành. Một phần là một vùng kín nằm trong đa giác được giới hạn bởi các cạnh hoặc các đoạn thẳng đã vẽ.

Dữ liệu vào

Một dòng chứa hai số nguyên nk (5n106, 2kn2, gcd(n,k)=1).

Dữ liệu ra

In ra n số nguyên cách nhau bởi dấu cách: số thứ i là số phần của đa giác sau khi vẽ i đoạn đầu tiên.

Ràng buộc

  • 5n106
  • 2kn2
  • gcd(n,k)=1

Ví dụ

Input Output Giải thích
5 2 2 3 5 8 11 n=5, k=2. Lần lượt vẽ các đoạn 135241. Mỗi đoạn mới làm tăng số phần tương ứng.
10 3 2 3 4 6 9 12 16 21 26 31 Đoạn đầu chia đa giác thành 2 phần. Tới đoạn thứ 4 bắt đầu xuất hiện giao điểm với các đoạn cũ nên số phần tăng nhanh hơn.

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