ASCII kutuları şöyle görünür:
++ +---+ +------+ +---+ +---+
++ | | | | | | | |
| | | | | | | |
+-+ | | | | | | | |
+-+ | | | | | | +---+
+---+ | | | |
+--+ | | | | ++
| | | | | | ||
| | +------+ | | ||
+--+ | | ||
+---+ ||
||
+-----+ ||
+------------+ | | ++
| | | |
| | | |
+------------+ +-----+
Aşağıda aynı ASCII kutularının bazı örnekleri verilmiştir:
++ +- -+ +- -+ +- -+ +- -+
++ | - | | - - | | - | | - |
| | | -- | | | | |
+-+ | | | | " | - |
+-+ | - | || | | +- -+
+- -+ | | | |
+--+ | -- | | | ++
| | | - - | " ||
| | +- -+ | | ||
+--+ | - | | |
+- -+ | |
-- ||
- - +- -+ ||
+- - - -+ | - - | ++
| -- -- | | = |
| -- -- | | - - |
+- - - -+ +- -+
- -
--
İşte tüm bu test kutusu kutularının kopyalanması kolay bir biçimde bir bağlantısı. Tüm girişler ve ardından tüm çıkışlar aynı sıradadır.
Amacınız bir ASCII kutusunu giriş olarak almak ve yerleştirilen kutuyu geri döndürmektir. Patlama kuralları:
- "+" asla değişmez; "-" veya "|" doğrudan "+"
- Köşelerden başlayarak, "-" ve "|" köşeye yakın aynı karakterden bir boşluk daha içeriye hareket ettirdi. Bir "-" ve "|" hiçbir zaman aynı noktaya hareket edemez, ikisi de hareket etmez.
- "-" ve "-" aynı noktaya hareket ederse, o noktaya "=" koyun. "|" ve "|" aynı noktaya taşıyın, o noktaya bir "koyun. Bunlar, aynı noktada zıt yönlerde hareket ederek ilgili karakterlerinden ikisi olarak sayılır.
- İki "-" veya iki "|" sol alt örnekte görüldüğü gibi birbirini geçebilir.
- Kutu yeterince sıska ise, aynı şekilde dışarı doğru genişlemeye başlar ve her zaman başladığı taraftan uzaklaşır.
- Sonuç, merkez çizgisi boyunca hem x hem de y yönlerinde simetrik olmalıdır (satırsonlarını yoksayarak); buna boşluklar da dahildir, dolayısıyla sonucun bunu karşılamak için boşluklarla doldurulması gerekebilir.
Kural Ayrıntıları:
- Bu kod golf, bayt en kısa program kazanır.
- Standart boşluklar geçerlidir.
- Her satırın bir satırsonu karakterinde biteceğini varsayabilirsiniz.
- Giriş dizesindeki tek karakterler "+", "-", "|", "" ve "\ n" (satırsonu) olacaktır ve çıkış dizeniz "=" eklenerek aynı kurallara uymalıdır. ve "olabildiğince karakter.
- İsteğe bağlı olarak, son satırın sonunda tek bir son satırınız olabilir.
- Ele almanız gereken en küçük ASCII kutusu sol üstteki örnektir. Her ASCII kutusunun köşeleri tam olarak 4 "+" olacak.
m x n
Herhangi bir tamsayı için boyut kutularını ele almanız gerekecektir (mümkünm,n
olan2<=m,n<256
en büyük dize boyutu255*(255+1)
)- Giriş olarak her zaman tek bir geçerli ASCII kutusu alacağınızı varsayabilirsiniz.
||
bu örnekteki kişilerden biri "
ya da bir şey olmalı ...
"
mı? Sanırım "
sadece 3 geniş ya da daha büyük görünür?
"
giderdim? Sol tarafta mı yoksa sağ tarafta mı? Her ikisi de olamaz, ama sonuç da simetrik olduğu için de olamaz.