Boardgame Terra Mystica có một số cơ chế rất thú vị cho một trong những tài nguyên chính, sức mạnh. Thay vì giành và tiêu tốn đơn vị sức mạnh từ ngân hàng, mỗi người chơi bắt đầu trò chơi với chính xác 12 đơn vị sức mạnh được phân bổ trên ba "bát", được gắn nhãn I, II và III. Đạt được và chi tiêu sức mạnh sau đó chỉ đơn giản là chuyển sức mạnh giữa các bát:
- Để tiêu tốn một đơn vị năng lượng, hãy chuyển nó từ bát III sang bát I (miễn là bạn có một đơn vị trong bát III).
- Khi bạn đạt được một đơn vị năng lượng, nếu có một đơn vị trong bát I, hãy chuyển nó sang bát II. Nếu không có đơn vị nào trong bát I, nhưng có một đơn vị trong bát II, hãy chuyển nó sang bát III. Nếu tất cả các đơn vị đã ở trong bát III, không có gì xảy ra.
- Khi bạn đạt được hoặc chi tiêu nhiều đơn vị cùng một lúc, chúng được xử lý một đơn vị cùng một lúc.
Đây là một ví dụ. Giả sử, một người chơi bắt đầu với phân phối sức mạnh sau (được đưa ra theo thứ tự I | II | III
):
5 | 7 | 0
Sức mạnh của họ thay đổi như sau nếu họ có được và tiêu tốn sức mạnh một vài lần:
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)
Nhiệm vụ của bạn là tính toán kết quả của một sự kiện đạt được hoặc chi tiêu như vậy.
Các thách thức
Bạn được cung cấp bốn số nguyên làm đầu vào. Ba đầu tiên, I
, II
, III
, đại diện cho lượng điện năng trong mỗi trong ba bát. Chúng sẽ không âm, và chúng sẽ có tổng bằng 12. Số thứ tư P
, là lượng sức mạnh có được hoặc chi tiêu, và sẽ nằm trong phạm vi bao gồm [-III, 24]
(vì vậy bạn có thể cho rằng người chơi sẽ không bao giờ cố gắng tiêu tốn nhiều năng lượng hơn hơn hiện tại họ có thể, nhưng họ có thể đạt được nhiều sức mạnh hơn mức cần thiết để chuyển tất cả sức mạnh vào bát III).
Bạn có thể lấy các số này theo bất kỳ thứ tự nhất quán nào, làm đối số riêng biệt, làm danh sách các số nguyên hoặc dưới dạng chuỗi chứa các số nguyên này. Bạn cũng có thể P
như một đối số, như I
, II
, III
như một đối số danh mục riêng.
Bạn nên đầu ra ba số nguyên I'
, II'
, III'
mà đại diện cho lượng điện năng trong mỗi bát sau khi P
đơn vị được thu hoặc chi tiêu, theo các quy tắc giải thích ở trên.
Bạn có thể viết chương trình hoặc chức năng và sử dụng bất kỳ phương pháp tiêu chuẩn nào để nhận đầu vào và cung cấp đầu ra.
Bạn có thể sử dụng bất kỳ ngôn ngữ lập trình nào , nhưng lưu ý rằng các lỗ hổng này bị cấm theo mặc định.
Đây là môn đánh gôn , vì vậy câu trả lời hợp lệ ngắn nhất - được đo bằng byte - thắng.
Các trường hợp thử nghiệm
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