กล่อง ASCII มีลักษณะดังนี้:
++ +---+ +------+ +---+ +---+
++ | | | | | | | |
| | | | | | | |
+-+ | | | | | | | |
+-+ | | | | | | +---+
+---+ | | | |
+--+ | | | | ++
| | | | | | ||
| | +------+ | | ||
+--+ | | ||
+---+ ||
||
+-----+ ||
+------------+ | | ++
| | | |
| | | |
+------------+ +-----+
นี่คือตัวอย่างบางส่วนของกล่อง ASCII เดียวกันที่ฝังอยู่:
++ +- -+ +- -+ +- -+ +- -+
++ | - | | - - | | - | | - |
| | | -- | | | | |
+-+ | | | | " | - |
+-+ | - | || | | +- -+
+- -+ | | | |
+--+ | -- | | | ++
| | | - - | " ||
| | +- -+ | | ||
+--+ | - | | |
+- -+ | |
-- ||
- - +- -+ ||
+- - - -+ | - - | ++
| -- -- | | = |
| -- -- | | - - |
+- - - -+ +- -+
- -
--
นี่คือลิงค์ไปยังกล่องกรณีทดสอบทั้งหมดในรูปแบบที่ง่ายต่อการคัดลอก คำสั่งคืออินพุตทั้งหมดตามด้วยเอาต์พุตทั้งหมดในลำดับเดียวกัน
เป้าหมายของคุณคือการใช้กล่อง ASCII เป็นอินพุตและส่งคืนกล่องที่ถูกฝัง กฎของการระเบิดคือ:
- "+" ไม่เปลี่ยนแปลง ไม่ทำ "-" หรือ "|" ติดกับ "+" โดยตรง
- เริ่มจากมุม "-" และ "|" ย้ายเข้าด้านในโดยหนึ่งช่องว่างมากกว่าตัวละครเดียวกันที่อยู่ใกล้มุม หาก "-" และ "|" จะย้ายไปที่จุดเดิมไม่เคลื่อนที่
- หาก "-" และ "-" ย้ายไปยังจุดเดียวกันให้ใส่ "=" ในจุดนั้น ถ้าเป็น "|" และ "|" ย้ายไปที่จุดเดียวกันใส่ "ในจุดนั้นสิ่งเหล่านี้นับเป็นตัวละครสองตัวของพวกเขาในจุดเดียวกันที่เคลื่อนที่ไปในทิศทางตรงกันข้าม
- สอง "-" หรือสอง "|" สามารถเลื่อนผ่านซึ่งกันและกันได้ตามที่เห็นในตัวอย่างด้านล่างซ้าย
- หากกล่องมีขนาดเล็กพอก็จะเริ่มขยายออกไปในลักษณะเดียวกันโดยจะขยับออกห่างจากด้านที่มันเริ่มเป็นส่วนหนึ่งเสมอ
- ผลลัพธ์ควรมีความสมมาตรข้ามเส้นกลางทั้งในทิศทาง x และ y (ไม่ขึ้นบรรทัดใหม่) ซึ่งรวมถึงช่องว่างดังนั้นผลลัพธ์อาจต้องมีการเว้นวรรคเพื่อตอบสนองความต้องการนั้น
รายละเอียดของกฎ:
- นี่คือโค้ดกอล์ฟดังนั้นโปรแกรมที่สั้นที่สุดในหน่วยไบต์ชนะ
- ช่องโหว่มาตรฐานใช้
- คุณสามารถสมมติว่าแต่ละบรรทัดลงท้ายด้วยอักขระขึ้นบรรทัดใหม่
- อักขระเฉพาะในสตริงอินพุตจะเป็น "+", "-", "|", "" และ "\ n" (ขึ้นบรรทัดใหม่) และสตริงเอาต์พุตของคุณควรเป็นไปตามกฎเดียวกันโดยเพิ่ม "=" และ "เป็นอักขระที่เป็นไปได้
- คุณอาจเลือกที่จะขึ้นบรรทัดใหม่หนึ่งบรรทัดท้ายบรรทัดสุดท้าย
- กล่อง ASCII ที่เล็กที่สุดที่คุณต้องจัดการเป็นตัวอย่างด้านบนซ้าย กล่อง ASCII ทุกกล่องจะมีขนาด 4 "+" ทุกประการตรงมุม
- คุณจะต้องจัดการกล่องขนาด
m x n
สำหรับจำนวนเต็มใด ๆm,n
เช่นนั้น2<=m,n<256
(ขนาดสตริงที่ใหญ่ที่สุดที่เป็นไปได้ของ255*(255+1)
) - คุณสามารถสมมติว่าคุณจะได้รับกล่อง ASCII ที่ถูกต้องเสมอเป็นอินพุต
||
ในนั้นต้องเป็น"
อะไรซักอย่าง ...
"
อะไรอีกไหม? ฉันเดาว่าสิ่ง"
เดียวที่ปรากฏบนหน้าจอกว้างกว่าหรือมากกว่า?
"
ไปที่ไหน? ด้านซ้ายหรือด้านขวา มันไม่สามารถเป็นได้ทั้งคู่ แต่ไม่สามารถเป็นได้ทั้งคู่เพราะผลลัพธ์นั้นสมมาตร