Organizujesz poszukiwanie skarbów dla swoich przyjaciół. Aby łatwiej prowadzić rzeczy, musisz narysować mapę wszystkich miejsc, w których ukryłeś cenne przedmioty.
Wejście
Dowolna forma wprowadzania oznaczająca listę punktów składających się z (nieujemnej) współrzędnej xi y, 0 0będąca lewym górnym rogiem, jest dozwolona (uwaga: w odpowiedzi można również zastosować indeksowanie 1-owe, jeśli tak, należy to skomentować ). Przykład:
1 2
3 0
0 1
Wyzwanie
Twoja funkcja lub program powinien być w stanie zbudować mapę oznaczającą każdą podaną lokalizację, w xktórej znak znajduje się w wierszu y + 1 i kolumnie x + 1 na wyjściu. Nieoznaczone lokalizacje są oznaczone symbolem . Mapa składa się również z ramki, w której narożniki to +s, linie pionowe to |s, a linie poziome to -s. Twoje rozwiązanie powinno generować możliwie najmniejszą ramkę. Mapa podanego powyżej przykładu wprowadzania:
+----+
| x|
|x |
| x |
+----+
Możliwe przypadki testowe
"0 0"
=>
+-+
|x|
+-+
"0 10
5 5
10 0"
=>
+-----------+
| x|
| |
| |
| |
| |
| x |
| |
| |
| |
| |
|x |
+-----------+
""
=>
++
++
"0 0
0 2
2 0"
=>
+---+
|x x|
| |
|x |
+---+
Oczywiście jest to kod-golf , co oznacza, że wygrywa rozwiązanie o najniższej liczbie bajtów! Zachęcamy do objaśnienia twojego rozwiązania.
the input is a list of locations (e.g. nested list, list of tuples, space & newline separated, separate inputs, ect.)