Stellen Sie sich ein Bündel von Rechtecken in der Ebene vor, wobei jedes Rechteck seine Scheitelpunkte an ganzzahligen Koordinaten und seine Seiten parallel zu den Achsen hat:

Die Rechtecke unterteilen die Ebene in mehrere nicht zusammenhängende Bereiche, darunter rot und blau gefärbt:

Ihr Ziel ist es, die Anzahl solcher Regionen zu finden, die perfekte Quadrate sind. Im obigen Beispiel gibt es drei:

Beachten Sie, dass das große Quadrat in der Mitte nicht gezählt wird, da es sich nicht um eine einzelne Region handelt, sondern aus mehreren kleineren, nicht zusammenhängenden Regionen besteht.
Eingang
Sie können eine Funktion oder ein vollständiges Programm für diese Herausforderung schreiben.
Die Eingabe erfolgt durch nicht 4nnegative Ganzzahlen, die nRechtecke in der Ebene definieren. Jedes Rechteck wird durch zwei gegenüberliegende Eckpunkte dargestellt, z. B. 4 9 7 8das Rechteck mit den gegenüberliegenden Eckpunkten (4, 9)und (7, 8). Beachten Sie, dass dieses Rechteck auch als 7 8 4 9oder dargestellt werden kann 4 8 7 9.
Das genaue Eingabeformat ist flexibel (z. B. durch Leerzeichen getrennte Zeichenfolge, durch Kommas getrennte Zeichenfolge, ein einzelnes Array von Ganzzahlen, eine Liste von Koordinatentupeln usw.). Seien Sie jedoch vernünftig und geben Sie ein Beispiel für die Ausführung Ihres Codes in Ihrem Beitrag. Sie können die Eingabe möglicherweise nicht neu anordnen.
Der Einfachheit halber können Sie davon ausgehen, dass sich keine zwei Kanten überlappen werden - dies schließt das Überlappen an einem Scheitelpunkt ein. Dies bedeutet insbesondere, dass sich keine zwei Rechtecke von Kante zu Kante oder von Ecke zu Ecke berühren und die Rechtecke eine Fläche ungleich Null haben.
Ausgabe
Ihr Programm sollte eine einzelne Ganzzahl ausgeben oder zurückgeben, dh die Anzahl der quadratischen Bereiche.
Wertung
Das ist Codegolf, also gewinnt der Code mit den wenigsten Bytes.
Testfälle
Eingang:
0 0 5 5
6 8 10 4
14 16 11 13
19 1 18 2
Ausgabe:
4
Dies sind einfach vier disjunkte Quadrate:

Eingang:
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
Ausgabe:
3
Dies ist der Beispieltestfall zu Beginn des Posts.
Eingang:
0 9 15 12
6 3 18 15
9 6 12 20
13 4 17 8
Ausgabe:
7

Eingang:
5 9 11 10
5 12 11 13
6 8 7 14
9 8 10 14
13 8 14 9
13 10 14 14
Ausgabe:
14

Eingang:
0 99999 100000 0
Ausgabe:
0
Dies ist nur ein großes Rechteck.
Eingang:
0 99999 100000 0
2 1 142857 285714
Ausgabe:
1
Zwei große Rechtecke, die sich überlappen.