Ném đĩa mừng năm mới
Đề bài
Mô tả
Có chiếc đĩa tròn, mỗi đĩa bán kính , 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 .
Ta thả từng đĩa xuống theo thứ tự từ đến . Khi thả đĩa thứ , tâm của nó được đặt tại toạ độ hoành độ (tung độ rất lớn), rồi đĩa trượt thẳng xuống: hoành độ tâm giữ nguyên bằng , 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 (khi đó tâm có tung độ ), 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 ).
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ả đĩa đã được thả xong.
Dữ liệu vào
- Dòng đầu chứa hai số nguyên và : số lượng đĩa và bán kính mỗi đĩa.
- Dòng thứ hai chứa số nguyên : 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 số. Số thứ là tung độ tâm của đĩa thứ . Đáp án được chấp nhận nếu sai số tuyệt đối hoặc tương đối không vượt quá .
Ràng buộc
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 ở . Đĩa 2 cùng hoành độ với đĩa 1 nên xếp chồng lên, tâm ở . Đĩa cuối (hoành độ ) chỉ chạm được đĩa thứ tư nên dừng ở . |
| 3 2 10 10 100 |
2 6 2 | Đĩa 1 và 2 xếp chồng ( rồi ). Đĩa 3 ở hoành độ , cách xa hai đĩa kia hơn nên rơi thẳng xuống đất, tâm ở . |
| 2 1 2 20 |
1 1 | Hai đĩa cách nhau nên không chạm nhau, cả hai đều nằm trên mặt đất. |
Bình luận