Problem description


Łamigłówka I
(Ł1)
Limit pamięci: 64 MB
Limit czasu: 1.00 s

Krasnal Olaf przygotował dla Ciebie zadanie w postaci łamigłówki Shingoki .

Twoim zadaniem jest ją rozwiązać, a więc narysować jedną, zgodną ze wszystkimi zasadami, zamkniętą pętlę, utworzoną z odcinków łączących sąsiednie punkty kratowe.

Zasady są następujące:

  • Pętla nie może się ze sobą przecinać i musi być jedynym zamkniętym obszarem na planszy.

  • W niektórych punktach znajdują się kółka. Przez każde białe kółko pętla musi przechodzić na wprost, zaś w każdym czarnym kółku pętla musi zakręcać.

  • Każda liczba wpisana w środek kółka ma być równa sumie długości dwóch prostych fragmentów pętli, wychodzących z tego kółka.

Lewy rysunek przedstawia przykładową łamigłówkę wraz z jej poprawnym rozwiązaniem. Twoim zadaniem jest rozwiązać łamigłówkę z prawego rysunku. Możesz założyć, że istnieje dokładnie jedno poprawne rozwiązanie.

Wejście

Brak.

Wyjście

Niech łamigłówka składa się z N2 punktów kratowych ułożonych w kwadrat o N wierszach i N kolumnach. Rozwiązanie należy wypisać jako rysunek złożony z 2N − 1 wierszy, z których każdy ma długość 2N − 1 znaków.

W wierszach nieparzystych należy opisać punkty kratowe oraz poziome odcinki pętli. Na pozycjach nieparzystych należy wypisać cyfrę z kółka znajdującego się w danym punkcie albo znak ., jeśli w tym punkcie nie ma kółka. Na pozycjach parzystych należy wypisać znak -, jeśli pętla zawiera poziomy odcinek między sąsiednimi punktami, albo znak spacji w przeciwnym przypadku.

W wierszach parzystych należy opisać pionowe odcinki pętli. Na pozycjach nieparzystych należy wypisać znak |, jeśli pętla zawiera pionowy odcinek między sąsiednimi punktami, albo znak spacji w przeciwnym przypadku. Na pozycjach parzystych należy wypisać znak spacji.

Rozwiązanie lewego przykładu

print("""\
. .-2-.
  |   |
.-. 2-.
|   |  
. . 2-.
|     |
5-.-3-.
""")

Szablon rozwiązania w Python

print("""\
. 2 . 2 . .
           
. . . . . .
           
. 2 3 . . .
           
. . . . . 3
           
. . 4 . . .
           
. . . . 4 .
""")