Jest to drugi z serii wyzwań Island Golf. Poprzednie wyzwanie
Dwóch pustelników przybyło na bezludną wyspę. Odkąd przybyli szukając samotności, chcą żyć jak najdalej od siebie. Gdzie powinni budować swoje chaty, aby zmaksymalizować odległość między nimi?
Wejście
Twój wkład będzie w prostokątną siatkę składającą się z dwóch znaków reprezentujących ląd i wodę. W poniższych przykładach ziemia jest #
i woda jest .
, ale możesz zastąpić dowolne dwa różne znaki, które chcesz.
...........
...##......
..#####....
..#######..
.#########.
...#######.
...#####.#.
....####...
...........
Zawsze będą co najmniej dwie płytki lądu. Wszystkie kafelki ziemi będą sąsiadować (tzn. Jest tylko jedna wyspa). Płytki wodne również będą przylegające (tj. Nie będzie żadnych jezior). Zewnętrzna krawędź siatki będzie stanowić płytki wodne. Kafelki lądowe nie zostaną połączone po przekątnej: tzn. Nigdy nie zobaczysz czegoś takiego
....
.#..
..#.
....
Wynik
Twój kod musi wyświetlać tę samą siatkę z zaznaczonymi dwoma lokalizacjami chaty . W poniższych przykładach lokalizacje chat są oznaczone X, ale możesz zastąpić dowolną postać, o ile różni się ona od twoich postaci lądowych i wodnych.
Lokalizacje chat muszą składać się z dwóch pól ziemi, wybranych tak, aby zmaksymalizować odległość między nimi. Definiujemy odległość marszu jako długość najkrótszej ścieżki, całkowicie na lądzie, między dwoma punktami. Płytki lądowe uważa się za sąsiadujące poziomo lub pionowo, ale nie po przekątnej.
Możliwe rozwiązanie dla powyższej wyspy:
...........
...X#......
..#####....
..#######..
.#########.
...#######.
...#####.X.
....####...
...........
Odległość między tymi dwoma punktami wynosi 11, co jest największą odległością między dowolnymi dwoma punktami na tej wyspie. Istnieje inne rozwiązanie odległości 11:
...........
...##......
..X####....
..#######..
.#########.
...#######.
...#####.X.
....####...
...........
Detale
Twoje rozwiązanie może być pełnym programem lub funkcją . Każda z domyślnych metod wejścia i wyjścia jest akceptowalna.
Dane wejściowe i wyjściowe mogą być ciągiem wielowierszowym, listą ciągów lub tablicą 2D / zagnieżdżoną listą znaków / ciągami jednoznakowymi. Twój wynik może (opcjonalnie) mieć jeden końcowy znak nowej linii. Jak wspomniano powyżej, możesz użyć dowolnych trzech różnych znaków zamiast #.X
(w zgłoszeniu określ, których znaków używasz).
Przypadki testowe
A. Wyspy z wyjątkowymi miejscami w chatach:
....
.##.
....
....
.XX.
....
......
......
..##..
...#..
......
......
......
......
..X#..
...X..
......
......
........
.#####..
.##..##.
.#..###.
.##..##.
........
........
.#####..
.##..##.
.#..###.
.#X..#X.
........
.........
.#####.#.
.#...#.#.
.#.###.#.
.#.....#.
.#######.
.........
.........
.#####.X.
.#...#.#.
.#.X##.#.
.#.....#.
.#######.
.........
B. Przykład wyspy z wieloma możliwymi rozwiązaniami:
........
....##..
...####.
..###...
.#####..
.#####..
..##....
........
Możliwe wyniki:
........
....#X..
...####.
..###...
.#####..
.X####..
..##....
........
........
....#X..
...####.
..###...
.#####..
.#####..
..X#....
........
........
....##..
...###X.
..###...
.#####..
.X####..
..##....
........
........
....##..
...###X.
..###...
.#####..
.#####..
..X#....
........
C. Duży przypadek testowy jako Gist
To jest golf-golf : wygrywa najkrótszy kod w każdym języku.