วันนี้ Purim ที่หนึ่งประเพณีคือการให้คุกกี้รูปสามเหลี่ยมที่มีการกรอกที่เรียกว่าhamantaschen (เอกพจน์: hamantasch ) ประเพณีอีกอย่างคือการดื่มหนัก
ฉันไม่ใช่คนทำขนมปังที่สมบูรณ์แบบที่สุด .... ฉันมี hamantaschen ขนาดผิดปกติมากมายที่จะให้ออกไปและเพื่อนมากมายที่จะให้พวกเขา! ถ้าฉันส่งรูปคุกกี้มาให้คุณคุณบอกฉันได้ไหมว่าฉันมีขนาดและขนาดเท่าไร? แต่เนื่องจากเป็น Purim และฉันเมาเกินกว่าที่จะอ่านรหัสได้มากจึงต้องมีรหัสขนาดเล็กเท่าที่คุณสามารถทำได้
คำนิยาม
ขนาด
hamantasch สามารถใด ๆขนาด hamantasch ที่เล็กที่สุดคือขนาด 1 และมีลักษณะดังนี้:
/\ --
-- \/
บางครั้ง hamantaschen หลายตัวสามารถซ้อนทับกันได้ รูปร่างด้านล่างนับเป็นสอง hamantaschen (หนึ่งขนาด 1, หนึ่งขนาด 2):
/\
/\ \
----
hamantaschen บางคนมีไส้ นี้จะถูกระบุโดยการกรอกช่องว่างทั้งหมดภายในด้วยตัวละคร โปรดทราบว่าขนาด 1 hamantaschen ไม่สามารถเติมได้
เราจะตั้งชื่อ hamantaschen ตามขนาดและการบรรจุ ลองใช้รูปแบบ<filling> <size>
และหากไม่ได้กรอกข้อมูล- <size>
(คุณสามารถใช้ช่องว่างแทน a -
ได้ แต่ markdown ไม่เป็นเช่นนั้น)
ที่นี่มี. 2
เป็น. 4
และ- 3
:
/\
/./\
---- /./ \
\../ /./ \
\/ --------
เหล่านี้คือ@ 3
a . 2
และ a - 4
:
/\
/ /\
/\ / /@@\
/..\ / /@@@@\
---- --------
นี่คือสิ่งที่ยากขึ้น มาดูกันว่าการ& 2
เติมมีน้อยกว่าที่คุณคาดหวังเนื่องจากความเอียงจากการทับซ้อนกัน- 3
อย่างไร มันมี- 1
, & 2
a - 3
และ a & 4
:
--------
\ \/&/
\ /\/
\/&/
\/
อินพุต
คุณจะได้รับไฟล์ข้อความหรือสตริงเดี่ยวของ hamantaschen (ขึ้นบรรทัดใหม่ที่เป็นตัวเลือกและช่องว่างที่ต่อท้ายแบบเป็นทางเลือกซึ่งจะเป็นทางเลือก)
ขีด จำกัด
- คุณสามารถคาดหวังได้ว่าสายอักขระนั้นใช้ได้ - นั่นคือตัวละครที่ไม่ใช่ช่องว่างทุกตัวมีส่วนในแฮมแมนเทคแสนหวาน (ทำไมต้องเป็นแป้งเสีย)
- นอกจากนี้คุณยังสามารถคาดหวังที่จะเต็มไปอย่างถูกต้องหรือไม่ - นั่นคือแต่ละ hamantasch มันจะเต็มไปทั้งหมดด้วยตัวอักษร ASCII ที่สอดคล้องกัน - ASCII 32 ไม่สำเร็จหรืออะไร 32..127 สำหรับเต็ม (ไม่รวม
/
,\
และ-
) - hamantaschen เหล่านี้ไม่ได้ซ้อนใน 3 ช่องว่าง ทั้งหมด
/
และ\
จะสามารถมองเห็นได้ ทั้งหมด-
ที่ไม่ได้ถูกบล็อกโดย/
และ\
จะปรากฏให้เห็น การเติมจะมาถึงขั้นสุดท้าย - hamantaschen ทั้งหมดจะมีเส้นแนวนอนอย่างน้อยครึ่ง (ปัดเศษขึ้น)
- บล็อกที่ต่อเนื่องกันของการเติมจะเติม Hamantasch ที่เล็กที่สุดที่อยู่รอบ ๆ มัน
เอาท์พุต
ส่งคืนรายการ "ชื่อ" ของ hamantaschen ทั้งหมดที่สามารถพบได้ตามเกณฑ์ด้านบน เอาต์พุตสามารถอยู่ในรูปแบบใดก็ได้ที่คุณต้องการ (สตริงแฮช stdout และอื่น ๆ )
กรณีทดสอบ
กรณีทดสอบ # 1
อินพุต # 1:
/\
/ /\
/\ / /@@\
/..\ / /@@@@\
---- --------
/\
/**\
/*/\*\
/*/..\*\
--------
เอาท์พุท # 1:
. 2
. 2
- 4
@ 3
* 4
กรณีทดสอบ # 2
อินพุต # 2:
/\----
/\/\*\/
/ /\d\/
------
เอาท์พุท # 2:
- 3
- 2
d 2
- 1
* 2
- 1
ทดสอบ # 3
อินพุต # 3:
----
\/\/
/\/\ /\
---- /::\
----
เอาท์พุท # 3:
- 1
- 1
- 2
- 1
- 1
- 2
: 2
ทดสอบ # 4
อินพุต # 4:
/\/\
/ /\$\
-/--/\\
--/--\
/xxx/\
/xxx/##\
---/----\
/ \
--------
เอาท์พุท # 4:
$ 2
x 4
- 3
- 2
- 4
- 1
- 1
# 2
กรณีทดสอบไม่ถูกต้อง # 5
การป้อนข้อมูล:
/\
\/
เอาท์พุท:
คุณไม่จำเป็นต้องจัดการกับสิ่งนี้
/
และ\
และ-
จะเสมอคนที่กล้าหาญไส้
(1,0)
+1
ยังฉันรู้ว่าคุณหมายถึงอะไรและฉันไม่เห็นด้วย มีข้อบ่งชี้อะไรบ้างที่(2, 2)
เป็นจุดศูนย์กลางด้านบนของ a - 2
และไม่ใช่แค่ด้านบนขวาและซ้ายของสองตัวบน- 1
? ไม่มีเลยที่ฉันเห็น (3, 2)
และตรรกะเดียวกันกับ ถ้าคุณไม่ต้องการเพิ่มกฎให้ถือว่าเป็นไปได้สูงสุด hamantaschen ...