Wyobraź sobie kilka prostokątów narysowanych w płaszczyźnie, każdy prostokąt z wierzchołkami o współrzędnych całkowitych i bokami równoległymi do osi:

Prostokąty dzielą płaszczyznę na kilka rozłącznych regionów, które mają kolor czerwony i niebieski poniżej:

Twoim celem jest znalezienie liczby takich regionów, które są idealnymi kwadratami. W powyższym przykładzie są trzy:

Zauważ, że duży kwadrat pośrodku nie jest liczony, ponieważ nie jest to pojedynczy region, ale składa się z kilku mniejszych, niepowiązanych regionów.
Wkład
Możesz napisać funkcję lub pełny program dla tego wyzwania.
Dane wejściowe będą 4nnieujemnymi liczbami całkowitymi definiującymi nprostokąty w płaszczyźnie. Każdy prostokąt jest reprezentowany przez dwa przeciwstawne wierzchołki, np. 4 9 7 8Reprezentuje prostokąt z przeciwległymi wierzchołkami (4, 9)i (7, 8). Zauważ, że ten prostokąt można również przedstawić jako 7 8 4 9lub 4 8 7 9.
Dokładny format wejściowy jest elastyczny (np. Ciąg oddzielony spacją, ciąg oddzielony przecinkami, pojedyncza tablica liczb całkowitych, lista krotek współrzędnych itd.), Ale bądź rozsądny i podaj przykład, jak uruchomić kod w poście. Nie możesz zmienić kolejności danych wejściowych.
Dla uproszczenia można założyć, że żadne dwie krawędzie nie będą się pokrywać - dotyczy to także nakładania się na wierzchołek. W szczególności oznacza to, że żadne dwa prostokąty nie będą się stykać od krawędzi do krawędzi lub od narożnika do narożnika, a prostokąty będą miały niezerowe pole.
Wydajność
Twój program powinien wydrukować lub zwrócić pojedynczą liczbę całkowitą, czyli liczbę kwadratowych regionów.
Punktacja
To jest kod golfowy, więc kod w najmniejszej liczbie bajtów wygrywa.
Przypadki testowe
Wkład:
0 0 5 5
6 8 10 4
14 16 11 13
19 1 18 2
Wydajność:
4
To po prostu cztery rozłączne kwadraty:

Wkład:
2 1 3 11
1 10 5 19
6 10 11 3
8 8 15 15
13 13 9 5
15 1 19 7
17 19 19 17
Wydajność:
3
To jest przykładowy przypadek testowy na początku postu.
Wkład:
0 9 15 12
6 3 18 15
9 6 12 20
13 4 17 8
Wydajność:
7

Wkład:
5 9 11 10
5 12 11 13
6 8 7 14
9 8 10 14
13 8 14 9
13 10 14 14
Wydajność:
14

Wkład:
0 99999 100000 0
Wydajność:
0
To tylko jeden duży prostokąt.
Wkład:
0 99999 100000 0
2 1 142857 285714
Wydajność:
1
Dwa duże prostokąty, które zachodzą na siebie.