เขียนโปรแกรมรูปสามเหลี่ยมสองรูป (เช่นปิรามิด)
คนแรกควรเป็นสามเหลี่ยมข้อความชี้ขึ้นไปที่มีความกว้างฐานขั้นต่ำที่สามตัวอักษร ดังนั้นมันจะมีโครงสร้างเหมือน
X
XXX
หรือ
X
XXX
XXXXX
หรือ
X
XXX
XXXXX
XXXXXXX
หรือใหญ่กว่า แต่ละตัวX
จะถูกแทนที่ด้วยตัวอักษรของรหัสจริงของคุณซึ่งอาจเป็นอะไรก็ได้ยกเว้นตัวต่อบรรทัด (เพื่อให้X
สามารถเว้นวรรคได้) ทั้งหมดX
จะต้องถูกแทนที่และเว้นวรรคและการขึ้นบรรทัดใหม่ที่จะช่วยในการสร้างรูปสามเหลี่ยมนั้นจะต้องคงอยู่เหมือนเดิม
โปรแกรมที่สองจะต้องมีขนาดและรูปร่างเท่ากับโปรแกรมแรกยกเว้นว่ารูปสามเหลี่ยมจะชี้ลง
ดังนั้นหากโปรแกรมแรกของคุณดูเหมือน
X
XXX
XXXXX
จากนั้นโปรแกรมที่สองของคุณจะดูเหมือน
yyyyy
yyy
y
โดยที่y
อักขระแต่ละตัวคุณต้องกรอกรหัสจริงของคุณ (อาจแตกต่างจากX
รหัสของคุณ) ช่องว่างและการขึ้นบรรทัดใหม่จะต้องอยู่ที่นี่เหมือนกัน
งานของคุณคือการเขียนโปรแกรมเหล่านี้เพื่อให้แต่ละเอาต์พุต (ไปยัง stdout หรือทางเลือกที่ใกล้เคียงที่สุด) ชื่อเพลงBeatles ที่แตกต่างกันโดยไม่ต้องป้อนข้อมูลใด ๆ บทความ Wikipedia นี้จะทำหน้าที่เป็นรายการเพลงอย่างเป็นทางการของเราสำหรับ The Beatles I Want You (She's So Heavy)
เอาท์พุทควรจะเป็นหนึ่งของชื่อเรื่องตรงตามที่ระบุไว้เช่น
อย่างไรก็ตามมันค่อนข้างง่ายแม้จะมีความต้องการของโปรแกรมสามเหลี่ยมแปลก ดังนั้นเราจะสร้างโปรแกรมอื่นจากสองรายการแรกที่จะต้องส่งออกไปยังชื่อเพลงอื่น
โดยการรวมสามสำเนาของโปรแกรมสามเหลี่ยมสองตัวแต่ละโปรแกรมเราสามารถสร้างโปรแกรมที่สามที่มีรูปร่างเหมือนรูปหกเหลี่ยม
หากความกว้างฐานของโปรแกรมแรกของคุณเป็นสามจะเป็นดังนี้:
XyyyX
XXXyXXX
yyyXyyy
yXXXy
หากความกว้างฐานเท่ากับห้ามันจะเป็นดังนี้:
XyyyyyX
XXXyyyXXX
XXXXXyXXXXX
yyyyyXyyyyy
yyyXXXyyy
yXXXXXy
โปรแกรมนี้ (เมื่อทำงานด้วยการเว้นวรรคและการขึ้นบรรทัดใหม่เหมือนคนอื่น ๆ ) จะต้องส่งออกชื่อเพลงของ Beatles อีกครั้งเหมือนกับโปรแกรมสองรายการแรก นอกจากนี้:
- สามรายการของคุณจะต้องแสดงชื่อเพลงที่แตกต่างกัน
- อนุญาตเฉพาะชื่อเพลงที่มีความยาวแปดตัวอักษรหรือนานกว่านั้น
- คุณสามารถเลือกหนึ่งใน
Revolution
นั้นRevolution 1
และRevolution 9
เนื่องจากชื่อมีความคล้ายคลึงกันมาก - คุณต้องเลือกเพลง Beatles ที่คุณชื่นชอบสามเพลง (ดีลองไป)
โปรดทราบว่าจำเป็นต้องใช้โปรแกรมจริง ไม่อนุญาตให้ใช้ฟังก์ชัน ไม่อนุญาตให้อ่านซอร์สโค้ดของคุณเองในโปรแกรมใด ๆ
ตัวอย่าง
ถ้าโปรแกรมแรกของคุณคือ
A
AAA
AAAAA
Across the Universe
มันอาจจะส่งออก
จากนั้นโปรแกรมที่สองของคุณ
bbbbb
bbb
b
Revolution
สามารถเอาท์พุท
รวมกันแล้วเป็นโปรแกรมรูปหกเหลี่ยม
AbbbbbA
AAAbbbAAA
AAAAAbAAAAA
bbbbbAbbbbb
bbbAAAbbb
bAAAAAb
Get Back
การส่งออกอาจจะมี
เกณฑ์การให้คะแนน
การส่งที่มีความกว้างฐานสามเหลี่ยมที่เล็กที่สุดชนะ ในกรณีที่มีความเป็นไปได้ที่จะส่งผลงานเพลงที่มีความยาวรวมที่ใหญ่ที่สุดของสามชื่อเพลงให้ชนะ