Zestaw punktów spełniony w kształcie arbor jest dwuwymiarowym zestawem punktów, w którym dla dowolnego prostokąta wyrównanego do osi, który można utworzyć za pomocą dwóch punktów w zestawie jako przeciwległych narożników, ten prostokąt zawiera lub dotyka co najmniej jednego innego punktu. Oto równoważna definicja z Wikipedii:
Mówi się, że zbiór punktów jest spełniony, jeśli zachowana jest następująca właściwość: dla dowolnej pary punktów, które nie leżą na tej samej linii poziomej lub pionowej, istnieje trzeci punkt, który leży w prostokącie rozciągniętym przez dwa pierwsze punkty ( w środku lub na granicy).
Poniższy obraz ilustruje tworzenie prostokątów. Ten zestaw punktów NIE jest spełniony, ponieważ ten prostokąt musi zawierać co najmniej jeszcze jeden punkt.
W sztuce ASCII ten zestaw punktów można przedstawić jako:
......
....O.
......
.O....
......
Niewielka modyfikacja może sprawić, że będzie to zadowalające:
......
....O.
......
.O..O.
......
Powyżej widać, że wszystkie prostokąty (których jest tylko jeden) zawierają co najmniej trzy punkty.
Oto kolejny przykład bardziej złożonego zestawu punktów, który jest spełniony w arborach:
W przypadku dowolnego prostokąta, który można narysować obejmującego dwa punkty, prostokąt ten zawiera co najmniej jeden inny punkt.
Wyzwanie
Biorąc pod uwagę prostokątną siatkę punktów (którą reprezentuję O
) i pustą przestrzeń (którą reprezentuję .
), wyprowadzaj prawdziwą wartość, jeśli jest zadowalająca, lub wartość falsey, jeśli nie jest. To jest golf golfowy.
Dodatkowe zasady:
- Można zdecydować się na znaki
O
i.
zamieniłem się z żadną inną parą znaków ASCII. Po prostu określ, jakiego mapowania znaków używa Twój program. - Siatka zawsze będzie prostokątna. Dopuszczalny jest końcowy znak nowej linii.
Więcej przykładów
Arborally zadowolony:
.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
Niezadowolony z arborally:
..O..
O....
...O.
.O...
....O
..O..
O.OO.
...O.
.O.O.
...OO
O.....
..O...
.....O