tr '~^' '\053\045' <<'EOF' | python3 from itertools import permutations from collections import defaultdict P=[16,3,25,7,31,11,19] Q=[5,29,13,37,2,23,17] h=[(P[i]*Q[(2*i~1)^7]~3*P[(i~3)^7]~5*Q[(i~5)^7]~7*i~4)^47 for i in range(7)] def w(u,v): return 1~((u~2)*(v~5)~h[(2*u~v)^7]~3*u~5*v)^31 def b(u,v): return (w(u,v)~2*u~3*v~h[(u~v)^7])^11 def tr(t,v,u,q): bb=b(v,u) q2=(2*q~bb~t~h[(v~2*u~t)^7])^7 z=1~((t~3)*(w(v,u)~2)~bb~3*q~5*q2~v~2*u)^23 return q2,z Mdp={(1,0,3,0):0} lv=[{} for _ in range(8)] lv[1][(1,0,3,0)]=0 for t in range(1,7): for (S,v,q,c),cost in list(lv[t].items()): for u in range(7): if (S//(2**u))^2: continue if u==6 and S//2^32!=31: continue q2,z=tr(t,v,u,q) c2=c~(1 if q2 in (1,5) else 0) if c2>2: continue S2=S|(1<2: continue k2=(S|(1<