Spójrz na ten schemat ascii różnych skrzynek:
+--------------------------------------------------------------+
| |
| +-------------------------------+ +-------+ |
| | | | | |
| | | | | |
| | +----------------+ | | | |
| | | | | +-------+ |
| | | | | |
| | | | | +-------+ |
| | +----------------+ | | | |
| | | | | |
| | | | | |
| +-------------------------------+ +-------+ |
| |
+--------------------------------------------------------------+
Każde pole jest utworzone z literami potoku dla części pionowych ( |
), myślnikami dla części poziomych ( -
) i plusami dla narożników ( +
).
Schemat pokazuje również pola wewnątrz innych pól. Nazwiemy liczbę pól, w których pole jest zawarte w warstwie tego pola . Oto schemat z adnotacją warstwy każdego pola:
+--------------------------------------------------------------+
| |
| +-------------------------------+ +-------+ |
| | | | | |
| | | | 1 | |
| | +----------------+ | | | |
| | | | | 0 +-------+ |
| | | 2 | 1 | |
| | | | | +-------+ |
| | +----------------+ | | | |
| | | | 1 | |
| | | | | |
| +-------------------------------+ +-------+ |
| |
+--------------------------------------------------------------+
Twój program przyjmie schemat wejściowy podobny do schematu u góry. Jako wynik, twój program powinien wypisać schemat skrzynki z:
- Pole na warstwie 0 powinno być wypełnione znakiem
#
(UWAGA: Zawsze będzie tylko jedno pole na warstwie 0); - Pola na warstwie 1 powinny być wypełnione znakiem
=
; - Pola na warstwie 2 powinny być wypełnione znakiem
-
; - Pola na warstwie 3 powinny być wypełnione znakiem
.
; - Pudełka na warstwie 4 i wyższej nie powinny być wypełnione.
Oto, jak powinien wyglądać wynik przykładowego wejścia:
+--------------------------------------------------------------+
|##############################################################|
|###+-------------------------------+##########+-------+#######|
|###|===============================|##########|=======|#######|
|###|===============================|##########|=======|#######|
|###|=====+----------------+========|##########|=======|#######|
|###|=====|----------------|========|##########+-------+#######|
|###|=====|----------------|========|##########################|
|###|=====|----------------|========|##########+-------+#######|
|###|=====+----------------+========|##########|=======|#######|
|###|===============================|##########|=======|#######|
|###|===============================|##########|=======|#######|
|###+-------------------------------+##########+-------+#######|
|##############################################################|
+--------------------------------------------------------------+
Oto kolejne dane wejściowe i wyjściowe pokazujące warstwy 3, 4 i 5. Zwróć uwagę na poziome linie u góry, które są bardzo blisko siebie. W takich przypadkach nie ma wystarczającej ilości miejsca, aby wypełnić tam dowolne postacie.
+-----------------------------------------------------------------------+
| +--------------------------------------------------------------+ |
| | +-----------------------------------------------------+ | |
| | | +-----------------------------------------+ | | |
| | | | +---------------------------+ | | | |
| | | | | +-------------+ | | | | |
| | | | | | | | | | | |
| | | | | +-------------+ | | | | |
| | | | +---------------------------+ | | | |
| | | | | | | |
| | | +-----------------------------------------+ | | |
| | | | | |
| | | | | |
| | +-----------------------------------------------------+ | |
| | | |
| +--------------------------------------------------------------+ |
| |
| |
| |
+-----------------------------------------------------------------------+
Wyjście:
+-----------------------------------------------------------------------+
|#####+--------------------------------------------------------------+##|
|#####|======+-----------------------------------------------------+=|##|
|#####|======|---------+-----------------------------------------+-|=|##|
|#####|======|---------|...........+---------------------------+.|-|=|##|
|#####|======|---------|...........| +-------------+ |.|-|=|##|
|#####|======|---------|...........| | | |.|-|=|##|
|#####|======|---------|...........| +-------------+ |.|-|=|##|
|#####|======|---------|...........+---------------------------+.|-|=|##|
|#####|======|---------|.........................................|-|=|##|
|#####|======|---------+-----------------------------------------+-|=|##|
|#####|======|-----------------------------------------------------|=|##|
|#####|======|-----------------------------------------------------|=|##|
|#####|======+-----------------------------------------------------+=|##|
|#####|==============================================================|##|
|#####+--------------------------------------------------------------+##|
|#######################################################################|
|#######################################################################|
|#######################################################################|
+-----------------------------------------------------------------------+
Kolejne wejście, tym razem również z pionowymi liniami blisko siebie:
+-------------+
|+-----------+|
|| ||
|| ||
|| ||
|+-----------+|
+-------------+
Wyjście:
+-------------+
|+-----------+|
||===========||
||===========||
||===========||
|+-----------+|
+-------------+
Dodatkowe uwagi
- Wokół najbardziej zewnętrznego pudełka mogą znajdować się białe znaki.
- Pudełka nie mogą mieć wewnętrznej szerokości ani wysokości 0 (więc zawsze będą w nich trochę miejsca)
- Pudełka na tej samej warstwie mogą się stykać.
import java.util.Scanner
zimport java.util.*
CJam,
11411110810410310298 bajtówWypróbuj online w interpretatorze CJam .
Jak to działa
źródło
JavaScript ( ES6 ) 156
Uruchom snippet w przeglądarce Firefox, aby przetestować
źródło
CJam,
7674 bajtówWypróbuj online w interpretatorze CJam .
Jak to działa
źródło
APL (Dyalog Unicode) , 50 bajtów SBCS
Wypróbuj online!
s←' #=-.+|'
przypisz ciąg do zmiennejs
⎕
oceniane dane wejściowe, musi to być matryca znaków⎕⍳⍨s
zastąp każdy element⎕
jego indeksem ws
a←
Przypisać doa
5=
zwraca boolowską matrycę gdzie+
-es są wa
(s[5]
is'+'
)(⊢ׯ1*+⍀++\)
Jest to pociąg z funkcjami:+\
macierz sum częściowych według wiersza+
plus+⍀
macierz sum cząstkowych według kolumny¯1*
ujemna do potęgi - zmień szanse na ¯1 i wyrównaj na 1⊢×
pomnóż przez argument pociągu - wyzeruj wszystko oprócz narożników pola+⍀+\
sumy częściowe według kolumny sumy częściowe według wiersza5⌊
minimum tego i 55|
moduł 5a,¨
sparuj elementya
bieżącej macierzy0~¨⍨
usuń 0 z par⊃¨
najpierw każdy z pozostałychs[ ]
użyj każdego elementu jako indeksu ws
źródło
↑⍞⍞...⍞
ocenia od prawej do lewej. Dla pierwszego przykładu nie miało to znaczenia i zapomniałem o tym wspomnieć..
tam, gdzie nie powinien> <> ,
118 11587 bajtówWypróbuj online!
Jeśli jeden z symboli nie był, możeEch, i tak zmniejszyło się-
to być 6 bajtów krótszych.trochęJak to działa:
źródło
C (gcc) ,
190179 bajtów-11 bajtów dzięki pułapowi cat
Nie powiedzie się, jeśli sizeof (int)> 9, ale wtedy możesz się uspokoić faktem, że Twój komputer pochodzi z przyszłości.
Wypróbuj online!
źródło