คราวนี้ฉันมีความท้าทายที่ง่ายสำหรับคุณ กำหนดอาร์เรย์ของจำนวนเต็มบวกA (หรือเทียบเท่าในภาษาของคุณ), แทนที่แต่ละรายการA iด้วยผลรวมขององค์ประกอบA iถัดไปของA , การวนกลับจากจุดเริ่มต้นหากมีรายการไม่เพียงพอ
ตามปกติคุณสามารถแข่งขันในภาษาการเขียนโปรแกรมใด ๆและสามารถรับอินพุตและให้ผลลัพธ์ผ่านวิธีมาตรฐานใด ๆและในรูปแบบที่เหมาะสมในขณะที่การทราบว่าช่องโหว่เหล่านี้ถูกห้ามโดยค่าเริ่มต้น คุณสามารถเลือกใช้ขนาดของAเป็นอินพุตได้เช่นกัน นี่คือรหัสกอล์ฟดังนั้นการส่งสั้นที่สุด (เป็นไบต์) สำหรับทุกภาษาที่ชนะ
ตัวอย่าง / กรณีทดสอบ
ได้รับ[1,3,4,5]
รหัสของคุณควรส่งออก[3,10,13,14]
เพราะ1
ถูกแทนที่ด้วย3
, 3
จะถูกแทนที่ด้วย4+5+1=10
(แจ้งให้ทราบวิธีการที่จะห่อกลับมาจากจุดเริ่มต้น) 4
โดย5+1+3+4=13
และโดย5
1+3+4+5+1=14
ได้รับ[3,2,1,9]
โปรแกรมของคุณควรผลิต[12,10,9,33]
เพราะเราแทน3
ด้วย2+1+9=12
, 2
กับ1+9=10
, 1
ด้วย9
และ9
ด้วย3+2+1+9+3+2+1+9+3=33
(แจ้งให้ทราบวิธีการที่เราห่อกลับมาจากการเริ่มต้นมากกว่าหนึ่งครั้ง)
กรณีทดสอบเพิ่มเติมให้คุณเลือกจาก:
[4,3,2,1] -> [10,7,5,4]
[3,2,1,9] -> [12,10,9,33]
[1,3,4,5] -> [3,10,13,14]
[4,4,3,2,2] -> [11,11,8,6,8]
[3,5,3,2,1] -> [10,14,6,4,3]
[3,2,4,3,2,1,1] -> [9,7,7,4,2,1,3]
[7,8,6,5,4,3,2,1,5] -> [29,33,20,15,11,8,6,5,30]
[28,2,4,2,3,2,3,4,5,3] -> [137,6,10,5,9,7,12,38,39,34]
[1,2,3,4,5,4,3,2,1,2,3,4,3,2,1] -> [2,7,13,14,12,8,5,3,2,7,9,7,4,2,1]