Editorial for Clue Contest 05 - Bốc kẹo
Remember to use this editorial only when stuck, and not to copy-paste code from it. Please be respectful to the problem author and editorialist.
Submitting an official solution before solving the problem yourself is a bannable offence.
Submitting an official solution before solving the problem yourself is a bannable offence.
Authors: ,
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()
Comments