Давши 4 точки на площинах 2D A, B, C, D
, обчисліть площу перетину трикутників OAB
і OCD
, де O
центр площини, має координату (0, 0)
.
Алгоритми, які працюють у постійній часовій складності (з точки зору арифметичних операцій), заохочуються, але не є вимушеними.
Правила
- Кожна точка представлена у вигляді двох дійсних чисел, позначає їх координати X і Y.
- За бажанням, якщо ваша мова програмування (або якась бібліотека вашої мови програмування) має вбудований
Point
тип або еквівалент, дозволено прийматиPoint
об'єкт як вхід.
- За бажанням, якщо ваша мова програмування (або якась бібліотека вашої мови програмування) має вбудований
- Вхід подається у вигляді 4 балів у форматах, включаючи, але не обмежуючись ними:
- Список з 8 координат.
- Список з 4 балів, кожна точка може бути представлений у будь-якому зручному форматі.
- Два списки по 2 бали.
- тощо.
- Ви не можете припускати особливого впорядкування точок (порядок проти годинникової стрілки чи за годинниковою стрілкою)
- Ви не можете припустити, що точка
O
передається як вхід. Іншими словами, програма не повинна приймати та використовувати сторонні введення. - Ви не можете припустити, що всі пункти різні. Іншими словами, трикутники можуть бути виродженими. Вам також потрібно розглянути цей випадок (див. Тестові випадки нижче)
- Абсолютна або відносна різниця повинна бути меншою, ніж для наведених нижче зразків тестових випадків.
10-3
Критерії виграшу
Це код-гольф , найкоротша відповідь у виграші байтів!
Зразки тестових кейсів
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
Якщо хто хоче, ось результати першої групи тестових випадків у точному вигляді:
0
0
0
46375/10296
3/2
1792/1025
77/26
49/26
51/13
23345/4433
0
7
0
0
0
Ілюстраційне зображення для тестового випадку 5 1 1 3 3 4 4 -3
(площа зеленого чотирикутника - очікуваний вихід):
[ ]