Immagina un gruppo di rettangoli disegnati sul piano, ogni rettangolo con i suoi vertici a coordinate intere e i suoi lati paralleli agli assi:
I rettangoli suddividono il piano in un numero di regioni disgiunte, colorate in rosso e blu in basso:
Il tuo obiettivo è trovare il numero di tali regioni che sono quadrati perfetti. Nell'esempio sopra, ci sono tre:
Si noti che il grande quadrato nel mezzo non viene conteggiato in quanto non è una singola regione, ma è invece costituito da diverse regioni disgiunte più piccole.
Ingresso
È possibile scrivere una funzione o un programma completo per questa sfida.
L'input sarà 4n
numeri interi non negativi che definiscono i n
rettangoli nel piano. Ogni rettangolo è rappresentato da due vertici opposti, ad esempio 4 9 7 8
rappresenta il rettangolo con vertici opposti (4, 9)
e (7, 8)
. Nota che questo rettangolo può anche essere rappresentato come 7 8 4 9
o 4 8 7 9
.
Il formato di input esatto è flessibile (ad es. Stringa separata da spazio, stringa separata da virgola, singola matrice di numeri interi, elenco di tuple di coordinate e così via) ma sii ragionevole e fornisci un esempio di come eseguire il codice nel tuo post. Non è possibile riordinare l'input.
Per semplicità, puoi presumere che non ci siano due bordi sovrapposti, questo include la sovrapposizione a un vertice. In particolare, ciò implica che nessun rettangolo toccherà da bordo a bordo o da angolo a angolo e che i rettangoli avranno un'area diversa da zero.
Produzione
Il programma dovrebbe stampare o restituire un singolo numero intero, ovvero il numero di regioni quadrate.
punteggio
Questo è il codice golf, quindi vince il codice nel minor numero di byte.
Casi test
Ingresso:
0 0 5 5
6 8 10 4
14 16 11 13
19 1 18 2
Produzione:
4
Questo è semplicemente quattro quadrati disgiunti:
Ingresso:
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
Produzione:
3
Questo è il caso di test di esempio all'inizio del post.
Ingresso:
0 9 15 12
6 3 18 15
9 6 12 20
13 4 17 8
Produzione:
7
Ingresso:
5 9 11 10
5 12 11 13
6 8 7 14
9 8 10 14
13 8 14 9
13 10 14 14
Produzione:
14
Ingresso:
0 99999 100000 0
Produzione:
0
Questo è solo un grande rettangolo.
Ingresso:
0 99999 100000 0
2 1 142857 285714
Produzione:
1
Due grandi rettangoli che si sovrappongono.