python3 <<'PY' import math a=0.25; b=1.0/12 def F(x,y): return math.sqrt(a)*(math.sqrt(x*y)+math.sqrt((1-x)*(1-y)))+math.sqrt(b)*(math.sqrt(x*(1-y))+math.sqrt((1-x)*y)) def BC(y1,y2): best=-1; by=None for j in range(1001): y3=a*j/1000 beta=a+b-y3 B=math.sqrt(beta)*(b+math.sqrt(max(0,a*(a-y3)))) gam=y1+y2+y3 C=math.sqrt(gam)*(math.sqrt(max(0,b*y1))+math.sqrt(max(0,a*y2))+math.sqrt(max(0,a*y3))) if B+C>best: best=B+C; by=y3 return best,by best=-1; arg=None for i in range(101): y1=b*i/100 for j in range(101): y2=a*j/100 al=2*a+2*b-y1-y2 x=(a+b-y1)/al; y=(a+b)/al Aub=al*F(x,y) bc,by=BC(y1,y2) u=Aub+bc if u>best: best=u; arg=(y1,y2,x,y,Aub,bc,by) print("bestUB",best,arg,"cost",1-best) PY