บทนำ
หลังจากการต่อสู้ที่ยาวนานคุณสามารถเอาชนะสฟิงซ์ได้ในการแข่งขันปริศนา สฟิงซ์สร้างความประทับใจให้กับทักษะของคุณปรารถนาที่จะให้รางวัลแก่คุณด้วยความฉลาดของคุณและเสกให้กลายเป็นแผ่นหนังเวทย์มนตร์ที่แบ่งออกเป็นแปดกล่องแต่ละกล่องมีตัวเลข
"สร้างกระดาษหนัง" สฟิงซ์กล่าว "กล่องซ้อนทับกันและกล่องเหล่านั้นจะรวมเข้าด้วยกันด้วยการบวกหรือการคูณเมื่อกล่องใดกล่องหนึ่งเหลืออยู่ค่าของมันจะเป็นรางวัลของคุณในเหรียญทอง"
งาน
คุณต้องเขียนโปรแกรมหรือฟังก์ชั่นที่ใช้เป็นรายการ / อาเรย์ / ตัวเลขแปดตัวใด ๆ และป้อนกลับ / พิมพ์รางวัลสูงสุดที่เป็นไปได้ที่ได้รับผ่านชุดการดำเนินงาน 'รอยพับ'
กลศาสตร์
ของรอยพับ 'การดำเนินงานจะดำเนินการในจำนวนของเซลล์บางส่วนและมีทั้ง+
หรือ*
เป็นผู้ประกอบการ n เซลล์แรกของรายการจะถูกพับและรวมเข้ากับเซลล์ปลายทางโดยใช้โอเปอเรเตอร์ เซลล์ใด ๆ ที่ไม่ได้ใช้ในการดำเนินการผสานจะไม่ได้รับการแก้ไข
นี่คือตัวอย่างของการตีโดยใช้ n = 3 เซลล์:
ใช้อย่างใดอย่างหนึ่งนอกจากนี้ซึ่งจะส่งผลในนี้:
หรือการคูณซึ่งจะส่งผลให้สิ่งนี้:
หมายเหตุ: เพื่อความง่ายการไม่อนุญาตให้มีการ creasing ที่มีเซลล์น้อยกว่า 1 เซลล์เช่นเดียวกับ creasing ที่มีจำนวนเซลล์มากกว่าหรือเท่ากับความยาวของรายการ อย่างไรก็ตามรายชื่อสามารถลดจำนวนเซลล์ได้มากกว่าครึ่ง
รายการ 8 เซลล์สามารถยับ 5 ส่งผลให้ในรายการใหม่ของความยาว 5:
[0,1,2,3,4,5,6,7]
ยับ 5 เซลล์โดยใช้ผู้ประกอบการจะให้+
[9,9,9,1,0]
เกณฑ์การให้คะแนน
กฎของรหัสกอล์ฟมาตรฐาน - รหัสที่สร้างผลลัพธ์ที่ถูกต้องและมีจำนวนไบต์น้อยที่สุดที่ชนะ
โบนัส: หากรหัสของคุณส่งคืน / พิมพ์ลำดับการพับซึ่งนำไปสู่รางวัลสูงสุดให้คูณคะแนนของคุณด้วย 0.8 เอาต์พุตตัวอย่างอาจมีลักษณะดังนี้:
crease 5 +
crease 2 *
crease 2 +
crease 1 *
ตัวอย่าง
ทดสอบรหัสของคุณโดยใช้อินพุตและผลลัพธ์เหล่านี้ในรูปแบบของinput - maximum reward
:
[0, 1, 2, 3, 4, 5, 6, 7] - 7560
[0, 9, 0, 3, 2, 6, 1, 5] - 1944
[0, 1, 0, 3, 0, 2, 0, 4] - 36
[6, 0, 9, 1, 9, 0, 7, 3] - 11907
[0, 5, 2, 0, 1, 3, 8, 8] - 2560