Cho mảng nums và cặp (x, y). Hàm find(x,y): nếu x>y trả 1, ngược lại nums[x]^find(x+1,y). Xác định find(x,y) chẵn/lẻ.
Quan sát
- Lũy thừa a^b chẵn ⟺ a chẵn và b > 0.
- find(x,y) lẻ nếu: x>y, hoặc nums[x] lẻ, hoặc (x < y và nums[x+1]==0).
Ví dụ
def solve(nums, x, y):
even = True
if x > y or (nums[x] % 2 == 1):
even = False
if x < len(nums) - 1 and x < y and nums[x + 1] == 0:
even = False
return 'Even' if even else 'Odd'
nums = [3, 2, 7]
x, y = 1, 2
print(solve(nums, x, y)) # Output: Even
Giải thích
find(1,2) = 2^find(2,2) = 2^7 = 128 (chẵn). nums[1]=2 chẵn, nums[2]=7≠0 → Even.