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

Đêm khiêu vũ ở vũ trường

Đề bài

Mô tả

Trên mặt phẳng toạ độ có n vũ công. Mỗi vũ công i chỉ di chuyển bên trong phạm vi của mình, là hình tròn Ci có tâm (xi,yi) và bán kính ri.

Các phạm vi có tính chất lồng nhau: với mọi cặp (i,j), hoặc hai hình tròn CiCj rời nhau, hoặc một hình tròn nằm hoàn toàn bên trong hình tròn kia. Đường biên của hai hình tròn có thể tiếp xúc nhau tại đúng một điểm, nhưng không có hai vũ công nào có phạm vi trùng khít.

Với một tập vũ công đang di chuyển, ta định nghĩa độ rộng rãi là diện tích phần mặt phẳng bị phủ bởi một số lẻ phạm vi trong tập đó.

Cả đêm được chia thành hai nửa: trước nửa đêm và sau nửa đêm. Mỗi vũ công di chuyển ở đúng một trong hai nửa (và ngồi nghỉ ở nửa còn lại). Độ rộng rãi của mỗi nửa được tính riêng, và tổng của chúng cần lớn nhất có thể.

Hãy tìm giá trị lớn nhất của tổng độ rộng rãi qua hai nửa đêm, khi ta được tự do chọn cách chia các vũ công vào hai nửa.

Dữ liệu vào

  • Dòng đầu chứa số nguyên dương n là số vũ công.
  • n dòng tiếp theo, dòng thứ i chứa ba số nguyên xi, yi, ri mô tả phạm vi hình tròn tâm (xi,yi) bán kính ri.

Dữ liệu ra

  • Một số thực là tổng độ rộng rãi lớn nhất. Đáp án được chấp nhận nếu sai số tương đối hoặc tuyệt đối không vượt quá 109.

Ràng buộc

  • 1n1000
  • 106xi,yi106
  • 1ri106
  • Mọi cặp phạm vi rời nhau hoặc lồng nhau (biên có thể tiếp xúc tại một điểm).

Ví dụ

Input Output Giải thích
5
2 1 6
0 4 1
2 -1 3
1 -2 1
4 -1 1
138.230076758 Hình tròn lớn bán kính 6 chứa hai hình tròn bán kính 13; hình tròn bán kính 3 lại chứa hai hình tròn bán kính 1. Chia hợp lý hai nửa cho tổng 44π138.23.
8
0 0 1
0 0 2
0 0 3
0 0 4
0 0 5
0 0 6
0 0 7
0 0 8
289.026524130 Tám hình tròn đồng tâm lồng nhau. Tổng lớn nhất là 92π289.03.

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