python3 <<"PY" from functools import cache V=[[10,5,4],[10,8,6],[10,8],[10,3]] @cache def h(rs,am,bm): rem=0 for t in range(4): rem=rem+len(V[t])-rs[t] if rem==0: return sum(am)-sum(bm) k=10-rem alice=k==(k//2)*2 vals=[] for t in range(4): if rs[t]na[t]: na[t]=v vals.append(h(nr,tuple(na),bm)) else: nb=list(bm) if v>nb[t]: nb[t]=v vals.append(h(nr,am,tuple(nb))) if alice: return max(vals) return min(vals) print(h((0,0,0,0),(0,0,0,0),(0,0,0,0))) PY