Một ngọn núi được định nghĩa là một tập hợp các phân đoạn dòng có điểm đầu tiên có tọa độ (0,a)
ở đâu a > 0
và điểm cuối cùng có tọa độ (b,0)
, ở đâu b > 0
. Tất cả các điểm trung gian có tọa độ y (tọa độ) lớn hơn 0. Bạn được cho các điểm trên núi được sắp xếp theo thứ tự tăng dần của tọa độ x (abscissa). Lưu ý rằng hai điểm có thể có cùng tọa độ x, tạo ra một đoạn thẳng đứng của ngọn núi. Nếu bạn được cho hai điểm có cùng tọa độ x, chúng sẽ được kết nối theo thứ tự chúng được cung cấp. Ngoài ra, có thể có những đoạn nằm ngang của ngọn núi Những đoạn nằm ngang này không được thắp sáng, không có vấn đề gì.Tất cả các tọa độ là số nguyên không âm.
Câu hỏi: tổng chiều dài của ngọn núi sẽ được thắp sáng là bao nhiêu, giả sử mặt trời là một mặt phẳng thẳng đứng vô hạn của ánh sáng nằm ở bên phải ngọn núi? Số này không cần làm tròn, nhưng nếu nó được làm tròn, bao gồm ít nhất bốn chữ số thập phân. Tôi đã bao gồm một hình ảnh: Ở đây, các dòng được in đậm thể hiện các phân đoạn được thắp sáng. Lưu ý rằng trong đầu vào, P xuất hiện trước Q (PQ là đoạn thẳng đứng) nên điểm trước đó được kết nối với P chứ không phải Q.
Bạn có thể nhận đầu vào ở bất kỳ định dạng hợp lý nào, như danh sách danh sách, danh sách đơn, chuỗi, v.v.
Trường hợp thử nghiệm:
(0,3000)
(500, 3500)
(2500, 1000)
(5000,5000)
(9000,2000)
(9000,3500)
(10200,0)
Output: 6200.0000
Có hai phân đoạn sáng ở đây, như trong hình này: Cái thứ nhất có chiều dài 5000/2 = 2500 và cái thứ hai có chiều dài 3700.
Đây là môn đánh gôn , vì vậy câu trả lời ngắn nhất bằng byte sẽ thắng.
(x1, y1)
và(x2,y2)
. Điểm đó là "chặn"(x3, y3)
. Giả sử y2 <y3 <= y1. Sau đó, độ dài của đoạn là((y1 - y3)/(y1 - y2))*sqrt((x1 - x2)^2 + (y1 - y2)^2)
. Đây thực chất là công thức khoảng cách, nhân với tỷ lệ của phân khúc thực sự được sử dụng.