Thợ mỏ kim cương
Đề bài
Mô tả
Có người thợ mỏ và mỏ kim cương nằm trên một mặt phẳng toạ độ.
- Mỗi người thợ mỏ là một điểm nằm trên trục (tức có hoành độ bằng ).
- Mỗi mỏ kim cương là một điểm nằm trên trục (tức có tung độ bằng ).
Không có điểm nào trùng với gốc toạ độ .
Mỗi người thợ mỏ phải khai thác đúng một mỏ kim cương, và mỗi mỏ được khai thác bởi đúng một người thợ (một phép ghép cặp một-một giữa thợ và mỏ). Nếu một người thợ ở vị trí khai thác mỏ ở vị trí thì chi phí năng lượng bỏ ra bằng khoảng cách Euclid giữa hai điểm:
Hãy tìm cách ghép cặp sao cho tổng chi phí năng lượng của tất cả người thợ là nhỏ nhất, và in ra giá trị nhỏ nhất đó.
Dữ liệu vào
- Dòng đầu chứa số nguyên là số bộ dữ liệu.
- Với mỗi bộ dữ liệu:
- Dòng đầu chứa số nguyên .
- dòng tiếp theo, mỗi dòng chứa hai số nguyên và mô tả một điểm . Nếu thì đây là một người thợ mỏ ở ; nếu thì đây là một mỏ kim cương ở . Có thể có nhiều thợ hoặc nhiều mỏ nằm cùng một vị trí.
Đảm bảo số điểm nằm trên trục bằng và số điểm nằm trên trục cũng bằng , và không điểm nào ở gốc toạ độ.
Dữ liệu ra
Với mỗi bộ dữ liệu, in ra một số thực là tổng chi phí năng lượng nhỏ nhất.
Đáp án được chấp nhận nếu sai số tuyệt đối hoặc tương đối so với đáp án đúng không vượt quá .
Ràng buộc
- Tổng trên tất cả các bộ dữ liệu không vượt quá .
Ví dụ
| Input | Output | Giải thích |
|---|---|---|
| 1 2 0 1 1 0 0 -1 -2 0 |
3.650281539873 | Thợ ở , ; mỏ ở , . Ghép với và với được tổng . |
| 1 1 0 100000000 100000000 0 |
141421356.237309515476 | Chỉ một cặp: khoảng cách . |
(Trong ví dụ đầu để minh hoạ một bộ dữ liệu; định dạng thực tế cho phép nhiều bộ.)
Bình luận