Sebuah set point arborally puas adalah seperangkat 2D poin sehingga, untuk setiap persegi panjang sumbu-blok yang dapat dibentuk dengan menggunakan dua poin di set sebagai sudut yang berlawanan, yang persegi panjang berisi atau sentuhan setidaknya satu titik lainnya. Berikut ini definisi yang setara dari Wikipedia:
Set poin dikatakan puas secara arboral jika properti berikut ini berlaku: untuk setiap pasangan poin yang tidak keduanya terletak pada garis horizontal atau vertikal yang sama, ada titik ketiga yang terletak di dalam persegi panjang yang direntang oleh dua titik pertama ( baik di dalam atau di batas).
Gambar berikut menggambarkan bagaimana persegi panjang terbentuk. Set titik ini TIDAK puas secara arboral karena persegi panjang ini perlu mengandung setidaknya satu titik lagi.
Dalam seni ASCII, set poin ini dapat direpresentasikan sebagai:
......
....O.
......
.O....
......
Sedikit modifikasi dapat membuat ini cukup memuaskan:
......
....O.
......
.O..O.
......
Di atas, Anda dapat melihat bahwa semua persegi panjang (yang hanya ada satu) mengandung setidaknya tiga poin.
Berikut adalah contoh lain dari set point yang lebih kompleks yang dipuaskan secara arborally:
Untuk setiap persegi panjang yang dapat ditarik yang mencakup dua titik, persegi panjang itu mengandung setidaknya satu titik lainnya.
Tantangan
Mengingat kotak persegi panjang poin (yang saya mewakili dengan O
) dan ruang kosong (yang saya mewakili dengan .
), output truthy nilai jika arborally puas, atau falsey nilai jika tidak. Ini adalah kode-golf.
Aturan tambahan:
- Anda dapat memilih untuk memiliki karakter
O
dan.
bertukar dengan pasangan karakter ASCII yang dapat dicetak lainnya. Cukup tentukan pemetaan karakter yang digunakan program Anda. - Grid akan selalu berbentuk persegi panjang. Baris baru tambahan diperbolehkan.
Lebih banyak contoh
Puas puas:
.OOO.
OO...
.O.OO
.O..O
....O
..O..
OOOO.
...O.
.O.O.
...OO
O.O.
..O.
OOOO
.O.O
OO..
...
...
...
...
..O
...
O.....
O.O..O
.....O
OOO.OO
Tidak Puas Arborally:
..O..
O....
...O.
.O...
....O
..O..
O.OO.
...O.
.O.O.
...OO
O.....
..O...
.....O