boardgame Terra Mysticaมีกลไกที่น่าสนใจมากสำหรับหนึ่งในทรัพยากรหลักพลัง แทนที่จะได้รับและใช้พลังงานจากธนาคารผู้เล่นแต่ละคนจะเริ่มเกมด้วยพลัง 12 หน่วยซึ่งกระจายอยู่ทั่ว "โบลลิ่ง" สามอันซึ่งมีชื่อว่า I, II และ III การดึงดูดและการใช้จ่ายพลังงานนั้นเพียงแค่เปลี่ยนพลังงานระหว่างชามเหล่านี้:
- ในการใช้หน่วยพลังให้ย้ายจากชาม III ไปยังชาม I (หากคุณมีหน่วยในชาม III)
- เมื่อคุณได้รับหน่วยพลังถ้ามีหน่วยในชามฉันย้ายไปยังชามที่สอง หากไม่มีหน่วยในชาม I แต่มีหน่วยในชาม II ให้ย้ายไปยังชาม III หากทุกหน่วยอยู่ในชาม III แล้วจะไม่มีอะไรเกิดขึ้น
- เมื่อคุณได้รับหรือใช้จ่ายหลายหน่วยพร้อมกันพวกเขาจะประมวลผลทีละหน่วย
นี่คือตัวอย่าง พูดว่าผู้เล่นเริ่มต้นด้วยการกระจายพลังงานต่อไปนี้ (ตามลำดับI | II | III
):
5 | 7 | 0
พลังของพวกเขาเปลี่ยนไปดังนี้หากพวกเขาได้รับและใช้พลังงานสองสามครั้ง:
5 | 7 | 0
Gain 3 ==> 2 | 10 | 0
Gain 6 ==> 0 | 8 | 4 (move 2 power from I to II,
then the remaining 4 from II to III)
Gain 7 ==> 0 | 1 | 11
Spend 4 ==> 4 | 1 | 7
Gain 1 ==> 3 | 2 | 7
Spend 7 ==> 10 | 2 | 0
Gain 12 ==> 0 | 10 | 2 (move 10 power from I to II,
then the remaining 2 from II to III)
Gain 12 ==> 0 | 0 | 12 (the two excess units go to waste)
งานของคุณคือการคำนวณผลลัพธ์ของเหตุการณ์ที่ได้รับหรือการใช้จ่าย
ความท้าทาย
คุณได้รับจำนวนเต็มสี่จำนวนเป็นอินพุต ครั้งแรกที่สามI
, II
, III
แทนปริมาณของพลังงานในแต่ละแห่งที่สามชาม พวกเขาจะไม่เป็นลบและจะรวมเป็น 12 จำนวนที่สี่P
คือจำนวนพลังงานที่ได้รับหรือใช้ไปและจะอยู่ในช่วงรวม[-III, 24]
(ดังนั้นคุณอาจคิดว่าผู้เล่นจะไม่พยายามใช้พลังงานมากขึ้น เกินกว่าที่พวกเขาจะสามารถทำได้ แต่พวกเขาอาจจะได้รับพลังมากกว่าที่พวกเขาต้องการที่จะย้ายพลังทั้งหมดเข้าไปในชาม III)
คุณอาจใช้ตัวเลขเหล่านี้ตามลำดับที่สอดคล้องกันเป็นอาร์กิวเมนต์แยกเป็นรายการจำนวนเต็มหรือเป็นสตริงที่มีจำนวนเต็มเหล่านี้ นอกจากนี้คุณยังสามารถใช้P
เป็นหนึ่งในข้อโต้แย้งเช่นI
, II
, III
เป็นอาร์กิวเมนต์รายการแยกต่างหาก
คุณควรเอาท์พุทสามจำนวนเต็มI'
, II'
, III'
ซึ่งเป็นตัวแทนของปริมาณของพลังงานในแต่ละชามหลังจาก P
หน่วยที่ได้รับหรือการใช้จ่ายตามกฎที่อธิบายข้างต้น
คุณสามารถเขียนโปรแกรมหรือฟังก์ชั่นและใช้วิธีการมาตรฐานของเราในการรับอินพุตและให้เอาต์พุต
คุณอาจใช้ภาษาการเขียนโปรแกรมใด ๆแต่โปรดทราบว่าช่องโหว่เหล่านี้เป็นสิ่งต้องห้ามตามค่าเริ่มต้น
นี่คือรหัสกอล์ฟดังนั้นคำตอบที่สั้นที่สุดที่ถูกต้อง - วัดเป็นไบต์ - ชนะ
กรณีทดสอบ
I II III P => I' II' III'
5 7 0 3 => 2 10 0
2 10 0 6 => 0 8 4
0 8 4 7 => 0 1 11
0 1 11 -4 => 4 1 7
4 1 7 0 => 4 1 7
4 1 7 1 => 3 2 7
3 2 7 -7 => 10 2 0
10 2 0 12 => 0 10 2
0 10 2 12 => 0 0 12