Loading Now

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 đá trong 3 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ì trong 3 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ốc 2 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

Contact