python3 <<"PY" from functools import cache V=[[10,5,4],[10,8,6],[10,8],[10,3]] A=[] for t in range(4): for v in V[t]: A.append((t,v)) n=len(A) def sc(m): s=0 for t in range(4): z=0 for i in range(n): r=m>>i if r-(r//2)*2: if A[i][0]==t and A[i][1]>z: z=A[i][1] s=s+z return s @cache def f(rem,a,b): if rem==0: return sc(a)-sc(b) k=n-bin(rem).count("1") alice=k==(k//2)*2 vals=[] for i in range(n): r=rem>>i if r-(r//2)*2: if alice: vals.append(f(rem-(1<