Biorąc pod uwagę 4 punkty na płaszczyznach 2D A, B, C, D, obliczyć obszar regionu przecięcia trójkątów OABi OCD, gdzie Ojest środek płaszczyzny, mieć współrzędną (0, 0).
Algorytmy działające ze stałą złożonością czasową (pod względem operacji arytmetycznych) są zalecane, ale nie wymuszone.
Zasady
- Każdy punkt jest reprezentowany jako dwie liczby rzeczywiste, oznaczające ich współrzędne X i Y.
- Opcjonalnie, jeśli Twój język programowania (lub pewna biblioteka języka programowania) ma wbudowany
Pointtyp lub równoważny, dozwolone jest przyjmowaniePointobiektu jako danych wejściowych.
- Opcjonalnie, jeśli Twój język programowania (lub pewna biblioteka języka programowania) ma wbudowany
- Dane wejściowe podano jako 4 punkty, w formatach, w tym między innymi:
- Lista 8 współrzędnych.
- Lista 4 punktów, każdy punkt może być reprezentowany w dowolnym dogodnym formacie.
- Dwie listy po 2 punkty.
- itp.
- Nie można zakładać określonej kolejności punktów (kolejność w lewo lub w prawo)
- Nie można zakładać, że punkt
Ojest przekazywany jako dane wejściowe. Innymi słowy, program nie może pobierać i wykorzystywać obcych danych wejściowych. - Nie możesz założyć, że wszystkie punkty są różne. Innymi słowy, trójkąty mogą być zdegenerowane. Musisz także obsłużyć tę sprawę (patrz przypadki testowe poniżej)
- Różnica bezwzględna lub względna musi być mniejsza niż dla przykładowych przypadków testowych poniżej.
10-3
Kryteria wygranej
To jest golf golfowy , najkrótsza odpowiedź w bajtach wygrywa!
Przykładowe przypadki testowe
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
Jeśli ktoś chce, oto wyniki dla pierwszej grupy przypadków testowych w dokładnej formie:
0
0
0
46375/10296
3/2
1792/1025
77/26
49/26
51/13
23345/4433
0
7
0
0
0
Zdjęcie ilustracyjne dla przypadku testowego 5 1 1 3 3 4 4 -3(obszar zielonego czworoboku jest oczekiwanym wynikiem):
[
]
