ในการท้าทายนี้คุณต้องแสดงศิลปะ ASCII ของบอลลูนน้ำที่กำหนดปริมาณน้ำที่เต็มไปด้วยบอลลูน:
| __||__ |
| / # #\ |
| |######| |
| |######| |
| |######| |
| |######| |
| |######| |
| \######/ |
| |
| |
+----------+
วิธีการวาดบอลลูน
ในการแสดงบอลลูนที่มีขนาดn
ให้ทำตามขั้นตอนต่อไปนี้ (หมายเหตุ: เมื่อใดก็ตามที่มีการใช้สัญลักษณ์การหาร ( /
) มันจะแสดงถึงการหารจำนวนเต็มปัดเศษลง):
วาดคอนเทนเนอร์ที่ประกอบด้วยแถบแนวตั้งสิบแถบ (
|
) ที่ด้านซ้ายและขวาเครื่องหมายขีดคั่นสิบอัน (-
) ที่ด้านล่างและเครื่องหมายบวก (+
) ที่มุมล่างซ้ายและขวาล่าง นี่ทำให้ทั้งหมด 12x11 และ "ข้างใน" 10x10| | | | | | | | | | | | | | | | | | | | +----------+
วาดแถบแนวตั้งสองแถบ (การเปิดบอลลูน) ที่กึ่งกลางของแถวบนสุดโดย
n/2
ขีดเส้นใต้ (_
) ที่ด้านใดด้านหนึ่ง (สำหรับตัวอย่างนี้คือn
5):| __||__ | | | | | | | | | | | | | | | | | | | +----------+
วาดหนึ่งเครื่องหมายทับ (
/
) และหนึ่งเครื่องหมายทับขวา (\
) ที่ล้อมรอบแถวบนสุดนี้หนึ่งแถวด้านล่าง:| __||__ | | / \ | | | | | | | | | | | | | | | | | +----------+
วาด
n
แถวของแถบแนวตั้งที่เว้นระยะเท่ากันจากนั้นหนึ่งแถวของแบ็กสแลช (ยังคงมีระยะห่างเหมือนกัน) หนึ่งคู่และสแลช:| __||__ | | / \ | | | | | | | | | | | | | | | | | | | | | | \ / | | | | | +----------+
"เติม" บอลลูนด้วยน้ำซึ่งมีเครื่องหมายแฮช (
#
) เริ่มที่แถวต่ำสุดและทำงานต่อไป หากไม่ได้กรอกแถวทั้งหมดคุณสามารถวางเครื่องหมายแฮชได้ทุกที่ที่คุณต้องการ (ในตัวอย่างด้านล่างพวกเขาจะถูกวางแบบสุ่ม แต่คุณสามารถใส่พวกเขาพูดทั้งหมดทางด้านซ้ายถ้าคุณต้องการ)| __||__ | | / # #\ | | |######| | | |######| | | |######| | | |######| | | |######| | | \######/ | | | | | +----------+
สูงสุดn
คือ 7 และต่ำสุดคือ 0
อินพุต
อินพุตจะเป็นจำนวนเต็มi
ซึ่งเป็นจำนวนของเครื่องหมายแฮช (น้ำ) ที่ต้องวาด
จะไม่น้อยกว่า 2 หรือมากกว่า 100
เอาท์พุต
ผลลัพธ์ควรเป็นบอลลูนขนาดn
ที่มีi
เครื่องหมายแฮช (หน่วยของน้ำ) ซึ่งn
เป็นขนาดที่ต่ำที่สุดที่สามารถถือi
หน่วยของน้ำได้ เนื่องจากi
จะเป็น 2 หรือมากกว่าn
เสมอจะเป็น 0 หรือมากกว่า
ขนาดที่เป็นไปได้สูงสุดที่บอลลูนสามารถวาดได้คือn
= 7 หากบอลลูนขนาด 7 ไม่สามารถพอดีกับปริมาณน้ำที่ระบุบอลลูนจะปรากฏ:
| |
| |
|## # ###|
|##########|
|##########|
|##########|
|##########|
|##########|
|##########|
|##########|
+----------+
(ด้านบนควรเป็นเอาต์พุตสำหรับอินพุตi
= 76 เช่นเดียวกับบอลลูนที่ไม่ได้แยกออกอาจมีการจัดน้ำหกหน่วยบนแถวด้านบนตามที่คุณต้องการ)
กรณีทดสอบ
เหตุใดจึงมีกรณีทดสอบหนึ่งข้อเมื่อคุณมีทั้งหมดได้
นี่คือภาพเคลื่อนไหว GIF ของอินพุตทั้งหมดi
ตั้งแต่ 2 ถึง 100:
เกณฑ์การให้คะแนน
นี่คือโค้ดกอล์ฟดังนั้นโค้ดที่สั้นที่สุดในหน่วยไบต์ชนะ