Hướng dẫn giải của Clue Contest 05 - Bốc kẹo
Chỉ dùng lời giải này khi không có ý tưởng, và đừng copy-paste code từ lời giải này. Hãy tôn trọng người ra đề và người viết lời giải.
Nộp một lời giải chính thức trước khi tự giải là một hành động có thể bị ban.
Nộp một lời giải chính thức trước khi tự giải là một hành động có thể bị ban.
Tác giả:
,Xét trạng thái cả hai túi kẹo đều có chẵn viên kẹo, và đang đến lượt của ~A~.
Trường hợp 1: Hai túi đều hết kẹo.
Lúc này, đương nhiên ~A~ thua.
Trường hợp 2: Chỉ một túi có kẹo.
Lúc này, ~A~ chỉ có thể bốc một viên kẹo từ túi đó, và ~B~ cũng vậy. Trạng thái được lặp lại, với hai túi đều có chẵn viên kẹo, và đang đến lượt của ~A~.
Trường hợp 3: Hai túi đều có kẹo.
- Nếu ~A~ bốc một viên kẹo từ một trong hai túi, ~B~ sẽ bốc một viên kẹo từ túi đó. Trạng thái được lặp lại, với hai túi đều có chẵn viên kẹo, và đang đến lượt của ~A~.
- Nếu ~A~ bốc một viên kẹo từ cả hai túi, ~B~ sẽ bốc một viên kẹo từ cả hai túi. Trạng thái được lặp lại, với hai túi đều có chẵn viên kẹo, và đang đến lượt của ~A~.
Vì vậy, nếu ~n~ và ~m~ đều chẵn, ta sẽ đi sau. Ngược lại, ta sẽ đi trước để tạo trạng thái hai túi đều có chẵn viên kẹo.
Code mẫu:
import sys import math def main(): ok = 0 x, y = map(int, input().split()) if x % 2 == 0 and y % 2 == 0: print(1) else: print(0) if x % 2 == 1 and y % 2 == 1: x -= 1 y -= 1 print("AB") elif x % 2 == 1 and y % 2 == 0: x -= 1 print("A") else: y -= 1 print("B") while True: res = input().strip() if res == "A": x -= 1 elif res == "B": y -= 1 elif res == "AB": x -= 1 y -= 1 if res == "-1": break if x % 2 == 1 and y % 2 == 1: x -= 1 y -= 1 print("AB") elif x % 2 == 1 and y % 2 == 0: x -= 1 print("A") else: y -= 1 print("B") if __name__ == "__main__": main()
Bình luận