Walking on Sunshine
Xem PDFBaku có rất nhiều nắng. Nếu bạn đi bộ ngược hướng mặt trời, hoặc ít nhất là vuông góc với các tia nắng, nắng sẽ không chiếu vào mắt bạn. Trong bài toán này, giả định mặt trời chiếu từ phía Nam. Việc đi bộ về phía Tây, Đông hoặc bất kỳ hướng nào có thành phần hướng Bắc sẽ tránh được việc nhìn trực tiếp vào mặt trời. Ngược lại, mắt bạn sẽ bị đau nếu bạn đi theo bất kỳ hướng nào có thành phần hướng Nam (\(y < 0\)).
Tuy nhiên, Baku cũng có nhiều vùng bóng râm hình chữ nhật. Khi ở trong những vùng này, mắt bạn sẽ được bảo vệ bất kể bạn đi theo hướng nào.
Yêu cầu
Tìm quãng đường ngắn nhất mà bạn phải đi trong điều kiện nắng chiếu vào mắt (đi hướng Nam và nằm ngoài vùng bóng râm) để đi từ địa điểm thi đấu đến địa điểm lễ trao giải.
Input
- Dòng đầu tiên chứa 5 số nguyên \(n, x_c, y_c, x_a, y_a\):
- \(n\) (\(0 \le n \le 10^5\)): số lượng vùng bóng râm.
- \((x_c, y_c)\): tọa độ địa điểm thi đấu.
- \((x_a, y_a)\): tọa độ địa điểm lễ trao giải.
- (Tọa độ trong khoảng \([-10^6, 10^6]\)).
- \(n\) dòng tiếp theo, mỗi dòng chứa 4 số nguyên \(x_1, y_1, x_2, y_2\) mô tả một vùng bóng râm hình chữ nhật:
- \((x_1, y_1)\) là góc Tây Nam và \((x_2, y_2)\) là góc Đông Bắc.
- Các hình chữ nhật này đôi một không tiếp xúc và không giao nhau.
Output
- Một số thực duy nhất là quãng đường tối thiểu phải đi dưới nắng (hướng Nam ngoài bóng râm).
- Chấp nhận sai số tuyệt đối hoặc tương đối không quá \(10^{-7}\).
Example
Sample test 1
Input
2 1 7 5 1
3 6 5 9
2 3 6 5
Output
3.0
note
Lộ trình tối ưu gồm 5 đoạn. Đoạn 1 đi ngược hướng nắng. Đoạn 2 và 4 đi hướng Nam nhưng nằm trong bóng râm. Đoạn 3 và 5 đi hướng Nam ngoài bóng râm với tổng chiều dài là 3.0.
Sample test 2
Input
2 0 10 10 0
2 7 3 8
4 3 8 5
Output
7.0
Bình luận