Cho 4 điểm trên các mặt phẳng 2D A, B, C, D
, tính diện tích của vùng giao nhau của các tam giác OAB
và OCD
, O
là tâm của mặt phẳng, có tọa độ (0, 0)
.
Các thuật toán chạy trong độ phức tạp thời gian không đổi (về các phép toán số học) được khuyến khích, nhưng không bị ép buộc.
Quy tắc
- Mỗi điểm được biểu diễn dưới dạng hai số thực, biểu thị tọa độ X và Y của chúng.
- Tùy chọn, nếu ngôn ngữ lập trình của bạn (hoặc một số thư viện ngôn ngữ lập trình của bạn) có
Point
loại tích hợp hoặc tương đương, nó được phép lấyPoint
đối tượng làm đầu vào.
- Tùy chọn, nếu ngôn ngữ lập trình của bạn (hoặc một số thư viện ngôn ngữ lập trình của bạn) có
- Đầu vào được cho là 4 điểm, trong các định dạng, bao gồm nhưng không giới hạn ở:
- Một danh sách 8 tọa độ.
- Một danh sách gồm 4 điểm, mỗi điểm có thể được thể hiện dưới bất kỳ định dạng thuận tiện nào.
- Hai danh sách 2 điểm.
- Vân vân.
- Bạn không thể giả sử thứ tự cụ thể của các điểm (thứ tự ngược chiều kim đồng hồ hoặc thứ tự theo chiều kim đồng hồ)
- Bạn không thể cho rằng điểm
O
được thông qua là đầu vào. Nói cách khác, chương trình không được lấy và sử dụng đầu vào không liên quan. - Bạn không thể cho rằng tất cả các điểm là khác nhau. Nói cách khác, các hình tam giác có thể bị thoái hóa. Bạn cũng cần xử lý trường hợp đó (xem các trường hợp thử nghiệm bên dưới)
- Sự khác biệt tuyệt đối hoặc tương đối phải nhỏ hơn các trường hợp thử nghiệm mẫu bên dưới.
10-3
Tiêu chí chiến thắng
Đây là code-golf , câu trả lời ngắn nhất trong byte win!
Các trường hợp thử nghiệm mẫu
Ax Ay Bx By Cx Cy Dx Dy area
5 1 1 3 -1 0 0 -1 0
5 1 1 3 -1 0 0 0 0
5 1 1 3 0 0 0 0 0
5 1 1 3 3 4 4 -3 4.50418
5 1 1 3 1 2 2 1 1.5
5 1 1 3 -2 5 4 -2 1.74829
5 1 1 3 -2 5 5 4 2.96154
5 1 1 3 3 5 5 4 1.88462
5 1 1 3 3 5 3 1 3.92308
5 1 1 3 3 5 4 -1 5.26619
5 1 1 3 5 1 4 -1 0
5 1 1 3 5 1 1 3 7
1 3 1 3 5 1 1 3 0
1 3 1 3 1 3 1 3 0
4 8 4 -1 -2 6 -2 -3 0
1.2 3.4 -0.3 4.2 5 7.6 -1.1 2.4 2.6210759326188535
3.1 0.6 0.1 7.2 5.2 0.7 0.9 8 9.018496993987977
Nếu bất cứ ai muốn, đây là các đầu ra cho nhóm trường hợp thử nghiệm đầu tiên ở dạng chính xác:
0
0
0
46375/10296
3/2
1792/1025
77/26
49/26
51/13
23345/4433
0
7
0
0
0
Hình ảnh minh họa cho trường hợp thử nghiệm 5 1 1 3 3 4 4 -3
(diện tích của tứ giác màu xanh lá cây là đầu ra dự kiến):
[ ]