Düzlemde çizilen ve her birinin tamsayı koordinatlarındaki köşeleri ve eksene paralel kenarları olan bir dikdörtgeni hayal edin:
Dikdörtgenler, düzlemi, aşağıda kırmızı ve mavi renkli olan birkaç ayrık bölgeye ayırır:
Amacınız mükemmel kareler gibi bölgelerin sayısını bulmaktır. Yukarıdaki örnekte üç tane var:
Ortadaki büyük karenin tek bir bölge olmadığı için sayılmadığını, bunun yerine daha küçük ayrık bölgelerden oluştuğunu unutmayın.
Giriş
Bu görev için bir işlev veya tam bir program yazabilirsiniz.
Girdi , düzlemdeki dikdörtgenleri 4n
tanımlayan negatif olmayan tam sayılar olacaktır n
. Her dikdörtgen iki karşıt tepe noktasıyla temsil edilir, örneğin karşıt tepe noktaları 4 9 7 8
olan dikdörtgeni temsil eder (4, 9)
ve (7, 8)
. Bu dikdörtgenin de 7 8 4 9
veya olarak gösterilebileceğini unutmayın 4 8 7 9
.
Kesin giriş formatı esnektir (örn. Boşlukla ayrılmış dize, virgülle ayrılmış dize, tekli tamsayılar dizisi, koordinat ipuçlarının listesi vb.), Ancak lütfen makul olun ve kodunuzu gönderiminizde nasıl çalıştıracağınıza dair bir örnek verin. Girişi yeniden sıralayamayabilirsiniz.
Basit olması için, iki kenarın üst üste gelmeyeceğini varsayabilirsiniz - buna bir tepe noktasında örtüşme dahildir. Özellikle, bu hiçbir iki dikdörtgenin kenardan kenara veya köşeden köşeye temas etmeyeceği ve dikdörtgenlerin sıfır alan içermeyeceği anlamına gelir.
Çıktı
Programınız, kare bölge sayısı olan tek bir tam sayı yazdırmalı veya döndürmelidir.
puanlama
Bu kod golf, yani en az bayttaki kod kazanıyor.
Test durumları
Giriş:
0 0 5 5
6 8 10 4
14 16 11 13
19 1 18 2
Çıktı:
4
Bu sadece dört ayrık karedir:
Giriş:
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
Çıktı:
3
Bu, gönderinin başlangıcındaki örnek test durumudur.
Giriş:
0 9 15 12
6 3 18 15
9 6 12 20
13 4 17 8
Çıktı:
7
Giriş:
5 9 11 10
5 12 11 13
6 8 7 14
9 8 10 14
13 8 14 9
13 10 14 14
Çıktı:
14
Giriş:
0 99999 100000 0
Çıktı:
0
Bu sadece bir büyük dikdörtgen.
Giriş:
0 99999 100000 0
2 1 142857 285714
Çıktı:
1
Örtüşen iki büyük dikdörtgen.