
PickStoneGame2
Cay cú vì lần trước Phát thắng trong hầu hết trò chơi bốc đá. Linh quyết định rủ Phát chơi lại và đưa ra luật chơi như sau:
- Cho một mảng gồm 3 số nguyên dương
stone
lần lượt là số lượng đá trong3
tụ đá ban đầu, trò chơi sẽ chơi theo từng lượt và vì Linh đưa ra luật chơi nên nhường Phát sẽ được quyền chơi trước. - Mỗi lượt chơi, một người phải bốc số viên đá là
số nguyên dương bất kì
từ1
tụ bất kì trong3
tụ đá. - Người nào đến lượt chơi của mình mà không bốc được nữa sẽ thua cuộc.
Linh cần biết số đá ban đầu ở mỗi tụ mà mình đưa ra có thể chiến thắng được Phát hay không. Hãy giúp Linh bằng cách đưa ra true
nếu Linh có thể thắng và đưa ra false
nếu Linh không thể thắng.
Lưu ý: Cả hai bạn đều rất thông minh để đưa ra chiến thuật tốt nhất cho bản thân khi đã có số đá ban đầu.
Ví dụ:
- Với
stone = [0,1,1]
, thìpickStoneGame2(stone) = true
.
Giải thích:
Lượt đầu tiên Phát bốc từ tụ nào thì Linh sẽ bốc tụ còn lại. Linh thắng. - Với
stone = [1,1,2]
, thìpickStoneGame2(stone) = false
.
Giải thích:
Lượt đầu tiên Phát bốc2
viên từ tụ thứ3
.
Lượt tiếp theo Linh bốc từ tụ nào thì Phát sẽ bốc tụ còn lại. Phát thắng.
Đầu vào/Đầu ra:
- [Giới hạn thời gian chạy] 0.5s với C++, 3s với Java, C#, 4s với Python, Js, Go
- [Đầu vào] Integer stone
stone.size = 3.
0 ≤ stone[] ≤ 109.
- [Đầu ra] Integer
Trả vềtrue
nếu Linh có thể thắng vàfalse
nếu Linh không thể thắng.
Post Comment