ให้เป็นตัวแทนของอิฐก่ออิฐมาตรฐานเป็น[__]
(และไม่สนใจความจริงที่ว่าด้านบนเปิด) เมื่อก้อนอิฐเหล่านี้ถูกซ้อนทับกันชั้นอื่น ๆ จะถูกชดเชยครึ่งอิฐเหมือนปกติในการก่อสร้างอิฐ:
[__][__][__][__]
[__][__][__][__]
[__][__][__][__]
[__][__][__][__]
ดังนั้นอิฐแต่ละก้อนมีเพื่อนบ้านได้มากที่สุดหกคนและเป็นไปไม่ได้ที่อิฐสองก้อนจะเรียงตัวในแนวตั้งได้โดยตรง
จุดสำคัญคือการจัดเรียงของอิฐเหล่านี้ไม่ได้ถูกทำให้ตายแต่มีเพียงแรงโน้มถ่วง ดังนั้นสิ่งสำคัญคืออิฐแต่ละก้อนในโครงสร้างมีความเสถียรไม่เช่นนั้นโครงสร้างทั้งหมดจะไม่เสถียร
อิฐมีความเป็นไปได้สามทาง:
- อิฐใด ๆ บนพื้นดิน (บรรทัดที่ต่ำที่สุดของอิฐ) มีความเสถียร
อิฐใด ๆ ที่มีสองก้อนด้านล่างโดยตรงจะมีเสถียรภาพ:
[__] <- this brick is stable [__][__] <- because these bricks hold it up
อิฐใด ๆ ที่มีอิฐทั้งด้านบนและด้านล่างบนด้านเดียวกันนั้นจะคงที่:
[__] [__] [__] [__] <- these middle bricks are stable [__] [__] because the upper and lower bricks clamp them in [__] [__] [__] [__] <- these middle bricks are NOT stable [__] [__]
จากกฎเหล่านี้เราสามารถดูตัวอย่างการจัดการ
[__][__][__][__]
[__][__][__][__]
[__][__][__][__]
[__][__][__][__]
ไม่เสถียรเนื่องจากก้อนอิฐด้านบนขวาไม่เสถียรซึ่งเป็นไปได้ทั้งหมด
โครงสร้างอิฐจะมีเสถียรภาพก็ต่อเมื่ออิฐทั้งหมดนั้นมีเสถียรภาพ
ท้าทาย
งานของคุณคือการเขียนฟังก์ชั่นที่ใช้ในสตริงโครงสร้างอิฐและส่งกลับค่าความจริงหากโครงสร้างมีความเสถียรและค่าเท็จหากไม่เสถียร ( คำจำกัดความความจริง / เท็จ )
สตริงป้อนข้อมูลอาจมีขนาดใหญ่ตามอำเภอใจ แต่มันจะเป็นตารางสี่เหลี่ยมของตัวละครเสมอโดยมีช่องว่างเติมพื้นที่ว่างของอิฐ ความกว้างกริดของอักขระจะหารด้วย 4 แต่ความสูงอาจเป็นเลขคี่หรือคู่
ตารางอิฐขยายออกไปด้านบนเสมอและไปทางขวาของตำแหน่งอิฐซ้ายล่าง:
.
.
.
BRK?BRK?BRK?BRK?
BRK?BRK?BRK?BRK?BRK?
BRK?BRK?BRK?BRK?
BRK?BRK?BRK?BRK?BRK? . . .
BRK?BRK?BRK?BRK?
BRK?BRK?BRK?BRK?BRK?
ขึ้นอยู่กับโครงสร้างแต่ละอันBRK?
แสดงถึงอิฐ ( [__]
) หรือพื้นที่ว่าง (4 ช่องว่าง)
โปรดสังเกตว่าช่องว่างครึ่งอิฐนั้นเต็มไปด้วยช่องว่างเพื่อให้แน่ใจว่าตารางอักขระเป็นรูปสี่เหลี่ยม
เกณฑ์การให้คะแนน
รหัสที่สั้นที่สุดในหน่วยไบต์ชนะ
หมายเหตุ
- หากต้องการคุณสามารถใช้
.
แทนช่องว่างเป็นอักขระช่องว่าง - สตริงว่างถือเป็นความมั่นคง
- หากภาษาของคุณไม่มีฟังก์ชั่นคุณสามารถใช้ตัวแปรสตริงที่มีชื่อเป็นอินพุตและกำหนดผลลัพธ์ให้กับตัวแปรอื่น
- หากภาษาของคุณไม่มีสตริงคุณอาจทำสิ่งที่เหมาะสมสำหรับการป้อนข้อมูล
กรณีทดสอบ
กรณีทดสอบต่าง ๆ คั่นด้วยบรรทัดว่าง เพื่อความชัดเจน.
จะใช้แทนพื้นที่สำหรับช่องว่าง
เสถียร:
[__]
..[__]..
[__][__]
........[__]........
......[__][__]......
........[__]........
..[__][__]..
[__][__][__]
..[__][__]..
[__]....[__]
............[__]..
..[__][__][__][__]
[__][__][__][__]..
..[__][__][__][__]
[__][__][__][__]..
..[__]........[__]..
[__][__][__][__][__]
..[__][__][__][__]..
....[__][__][__]....
......[__][__]......
........[__]........
เสถียร:
..[__]..
........
..[__]..
[__]....
..[__]..
....[__]
..[__][__]..
[__]....[__]
..[__][__]..
[__]....[__]
..[__][__][__][__]
[__][__][__][__]..
..[__][__][__][__]
[__][__][__][__]..
[__][__][__][__][__]
..[__][__][__][__]..
....[__][__][__]....
......[__][__]......
........[__]........
........[__]....
......[__][__]..
....[__][__]....
..[__][__]......
[__][__]........
..[__]..........
(คุณจะต้องเรียงซ้อนเส้นใจเหล่านั้นไว้ด้านบนจุดที่กฎของคุณอนุญาตให้โครงสร้างที่จุดศูนย์กลางของแรงโน้มถ่วงอยู่ห่างไกลจากจุดที่สัมผัสกับพื้นดินมากเกินไป โดยไม่จำเป็นต้องใช้เครื่องมือฟิสิกส์ถ้าคุณรู้สึกว่ามัน)