Teka-teki yang terkenal melibatkan menghitung berapa banyak kotak yang dapat dibuat menggunakan titik-titik pada kisi 3x3:
. . .
. . .
. . .
Jawabannya adalah 6 - empat kotak kecil, satu kotak besar, dan satu kotak terbentuk dari pasak atas, kiri, bawah, dan kanan, dengan tepi di sepanjang diagonal kotak.
Tugas Anda adalah membangun sebuah program yang menghitung jumlah kuadrat yang dapat dibentuk dari sekumpulan poin.
Program Anda akan mengambil input dalam salah satu dari dua format (pilihan Anda):
Sebuah
M
olehN
jaringan yang terdiri dari baik.
atau.
.
mewakili titik pada kotak yang kotak dapat menjadi sudut, dan semua ruang pada kotak persis satu unit terpisah secara horizontal atau vertikal.Daftar pasangan koordinat yang mewakili titik-titik dimana persegi dapat berada.
dan kembalikan jumlah kotak yang berbeda yang dapat dibentuk dengan menggunakan poin yang disediakan. Program Anda harus mengembalikan solusi yang benar untuk setiap input yang mungkin.
Misalnya, ambil input di atas tetapi di mana alun-alun tidak ada:
...
. .
...
Hanya ada dua kotak yang mungkin di sini (yang besar dan yang diagonal), sehingga program harus kembali 2
.
Kode terpendek untuk melakukan ini dalam bahasa apa pun menang.
Jawaban:
Python, 95
Mengambil daftar koordinat dari stdin.
Penjelasan:
sumber