Ném đĩa mừng năm mới

Đề bài

Mô tả

n chiếc đĩa tròn, mỗi đĩa bán kính r, nằm trên mặt phẳng toạ độ. Ban đầu tất cả các đĩa nằm rất cao phía trên đường thẳng y=0.

Ta thả từng đĩa xuống theo thứ tự từ 1 đến n. Khi thả đĩa thứ i, tâm của nó được đặt tại toạ độ hoành độ xi (tung độ rất lớn), rồi đĩa trượt thẳng xuống: hoành độ tâm giữ nguyên bằng xi, tung độ tâm giảm dần liên tục.

Đĩa dừng lại ngay khi xảy ra một trong hai trường hợp:

  • Đĩa chạm đường thẳng y=0 (khi đó tâm có tung độ r), hoặc
  • Đĩa chạm vào một đĩa đã dừng trước đó (hai đĩa chạm nhau khi khoảng cách giữa hai tâm bằng 2r).

Một khi đã dừng, đĩa không bao giờ di chuyển nữa, kể cả khi bị đĩa thả sau va vào.

Hãy tính tung độ tâm của tất cả các đĩa sau khi cả n đĩa đã được thả xong.

Dữ liệu vào

  • Dòng đầu chứa hai số nguyên nr: số lượng đĩa và bán kính mỗi đĩa.
  • Dòng thứ hai chứa n số nguyên x1,x2,,xn: hoành độ tâm của các đĩa theo thứ tự thả.

Dữ liệu ra

In ra một dòng gồm n số. Số thứ i là tung độ tâm của đĩa thứ i. Đáp án được chấp nhận nếu sai số tuyệt đối hoặc tương đối không vượt quá 106.

Ràng buộc

  • 1n,r1000
  • 1xi1000

Ví dụ

Input Output Giải thích
6 2
5 5 6 8 3 12
2 6 9.8729833462 13.337084961 12.518734657 13.337084961 Đĩa 1 rơi thẳng xuống chạm đất, tâm ở y=2. Đĩa 2 cùng hoành độ với đĩa 1 nên xếp chồng lên, tâm ở y=2+2r=6. Đĩa cuối (hoành độ 12) chỉ chạm được đĩa thứ tư nên dừng ở y13.337.
3 2
10 10 100
2 6 2 Đĩa 1 và 2 xếp chồng (y=2 rồi y=6). Đĩa 3 ở hoành độ 100, cách xa hai đĩa kia hơn 2r=4 nên rơi thẳng xuống đất, tâm ở y=2.
2 1
2 20
1 1 Hai đĩa cách nhau 18>2r=2 nên không chạm nhau, cả hai đều nằm trên mặt đất.

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