บทนำ
ฉันมีหิน ASCII มากมาย พวกเขาถูกสร้างขึ้นด้วยขีดกลาง, ท่อ, Vs, คาเร็ต, วงเล็บมุม, สแลชและช่องว่าง ตัวอย่าง:
/--\
| |
| |
\--/
ฉันต้องการที่จะกัดกร่อนพวกเขาเช่นนี้:
/\
/ \
\ /
\/
ทุกมุมกลายเป็นวงกว้างขึ้น ตัวอย่างที่ซับซ้อนมากขึ้น:
/----\
| \------\
| |
| |
\------------/
/--\
/ \------\
| \
\ /
\----------/
หลังจากการกัดเซาะอีกครั้งก็จะกลายเป็น
/\
/ \------\
< \
\ /
\--------/
เเละอีกอย่าง:
/\------\
< \
\ /
\------/
ท้าทาย
ความท้าทายของคุณคือการเขียนโปรแกรมที่สามารถลบอินพุตหนึ่งครั้ง คุณสามารถสันนิษฐานได้ว่ามีหินก้อนเดียวและคุณสามารถสันนิษฐานได้ว่ามันเป็นหนึ่งวงปิด การป้อนข้อมูลจะมีตัวอักษรเท่านั้น/\ -| <> ^V \n
และจะมีช่องว่างต่อท้ายเพื่อสร้างสี่เหลี่ยมผืนผ้า โปรแกรมสามารถรับอินพุตจาก STDIN และเอาต์พุตไปยัง STDOUT หรืออาจเป็นฟังก์ชัน ในตอนท้ายของแต่ละแถวจะมีอักขระขึ้นบรรทัดใหม่ การพังทลายต้องเป็นไปตามกฎที่ระบุไว้ด้านล่าง (หมายเหตุ: ในตัวอย่างหินที่ยังไม่เสร็จสมบูรณ์ เอาต์พุตจะต้องอยู่ในรูปแบบเดียวกับอินพุตโดยมีขนาดเท่ากับอินพุต อย่างไรก็ตามอาจเว้นช่องว่างต่อท้ายได้
เครื่องหมายทับจะกระจายไปยังท่อและขีดกลางและเคลื่อนที่ข้าม
/---
|
|
/--
/
|
/-
/
/
หากเครื่องหมายทับสองตัวรวมกันจะใช้อักขระที่เหมาะสมออก<>^V
มา
/-----\
| |
| |
| |
\-----/
/---\
/ \
| |
\ /
\---/
/-\
/ \
< >
\ /
\-/
^
/ \
< >
\ /
V
หากส่วนหนึ่งของหินสามารถรวมมันจะ หมายเหตุ: หากส่วนหนึ่งสามารถผสาน แต่ส่วนอื่นไม่สามารถ (เช่น/\
ในบรรทัดที่สองของตัวอย่าง) ดังนั้นส่วนที่สามารถผสานจะได้ (ดูตัวอย่าง)
/\
/\-^-/\-/ \--
|
<
|
/
\
|
/
/
\
\
|
|
/-------/\--
/
|
|
|
|
|
|
/
\
|
|
|
ในที่สุดหินทั้งหมดจะกลายเป็นไม่มีอะไร
<> ^ /\
V \/
กรณีทดสอบ
ทดสอบ 1:
/----\
| \------\
| |
| |
\------------/
/--\
/ \------\
| \
\ /
\----------/
/\
/ \------\
< \
\ /
\--------/
/\------\
< \
\ /
\------/
/-----\
< \
\ /
\----/
/---\
< \
\ /
\--/
/-\
< \
\ /
\/
^
< \
\/
ทดสอบ 2:
/----\
| |
| |
| |
| |
\----/
/--\
/ \
| |
| |
\ /
\--/
/\
/ \
/ \
\ /
\ /
\/
/\
/ \
\ /
\/
/\
\/
ทดสอบ 3:
^ /\
/\--/\--/ \--/ \-\
\ |
| |
/ |
\ |
| |
| |
/ |
< |
\ |
| |
| |
/ |
/ |
\ |
\-----------------/
/-------^----/\-\
/ \
| |
| |
| |
| |
| |
| |
< |
| |
| |
| |
| |
/ |
\ /
\---------------/
/-------------\
/ \
/ \
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
\ /
\ /
\-------------/
/-----------\
/ \
/ \
/ \
| |
| |
| |
| |
| |
| |
| |
| |
\ /
\ /
\ /
\-----------/
/---------\
/ \
/ \
/ \
/ \
| |
| |
| |
| |
| |
| |
\ /
\ /
\ /
\ /
\---------/
/-------\
/ \
/ \
/ \
/ \
/ \
| |
| |
| |
| |
\ /
\ /
\ /
\ /
\ /
\-------/
/-----\
/ \
/ \
/ \
/ \
/ \
/ \
| |
| |
\ /
\ /
\ /
\ /
\ /
\ /
\-----/
/---\
/ \
/ \
/ \
/ \
/ \
/ \
/ \
\ /
\ /
\ /
\ /
\ /
\ /
\ /
\---/
/-\
/ \
/ \
/ \
/ \
/ \
/ \
/ \
\ /
\ /
\ /
\ /
\ /
\ /
\ /
\-/
^
/ \
/ \
/ \
/ \
/ \
/ \
/ \
\ /
\ /
\ /
\ /
\ /
\ /
\ /
V
^
/ \
/ \
/ \
/ \
/ \
/ \
\ /
\ /
\ /
\ /
\ /
\ /
V
^
/ \
/ \
/ \
/ \
/ \
\ /
\ /
\ /
\ /
\ /
V
^
/ \
/ \
/ \
/ \
\ /
\ /
\ /
\ /
V
^
/ \
/ \
/ \
\ /
\ /
\ /
V
^
/ \
/ \
\ /
\ /
V
^
/ \
\ /
V
^
V
เกณฑ์การให้คะแนน
นี่คือโค้ดกอล์ฟดังนั้นโปรแกรมที่มีจำนวนไบต์น้อยที่สุดจะเป็นผู้ชนะ!
ไม่อนุญาตช่องโหว่มาตรฐาน
"\x20\x20\x20\x20\x20\x20/\\\n/-\\\x20\x20/\x20\x20\\-\\\n|\x20\x20\\/\x20\x20\x20\x20\x20|\n\\---------/\n"