# your code goes hereimport math;a,b,c=13.0,14.0,15.0;s=(a+b+c)/2;S=math.sqrt(s*(s-a)*(s-b)*(s-c));R=S/s;cA=(b*b+c*c-a*a)/(2*b*c);sA=math.sqrt(1-cA*cA);Ax,Ay=0,0;Bx,By=c,0;Cx,Cy=b*cA,b*sA;Dx,Dy=Bx+(s-b)/a*(Cx-Bx),By+(s-b)/a*(Cy-By);Ex,Ey=Ax+(s-a)/b*(Cx-Ax),Ay+(s-a)/b*(Cy-Ay);Fx,Fy=Ax+(s-a)/c*(Bx-Ax),Ay+(s-a)/c*(By-Ay);S_DEF=0.5*abs(Dx*(Ey-Fy)+Ex*(Fy-Dy)+Fx*(Dy-Ey));DE=math.hypot(Dx-Ex,Dy-Ey);EF=math.hypot(Ex-Fx,Ey-Fy);FD=math.hypot(Fx-Dx,Fy-Dy);r=S_DEF/((DE+EF+FD)/2);vEFx,vEFy=Fx-Ex,Fy-Ey;tK=((Dx-Ex)*vEFx+(Dy-Ey)*vEFy)/(vEFx**2+vEFy**2);Kx,Ky=Ex+tK*vEFx,Ey+tK*vEFy;vFDx,vFDy=Dx-Fx,Dy-Fy;tM=((Ex-Fx)*vFDx+(Ey-Fy)*vFDy)/(vFDx**2+vFDy**2);Mx,My=Fx+tM*vFDx,Fy+tM*vFDy;vDEx,vDEy=Ex-Dx,Ey-Dy;tN=((Fx-Dx)*vDEx+(Fy-Dy)*vDEy)/(vDEx**2+vDEy**2);Nx,Ny=Dx+tN*vDEx,Dy+tN*vDEy;S_KMN=0.5*abs(Kx*(My-Ny)+Mx*(Ny-Ky)+Nx*(Ky-My));print(f"Ratio: {S_KMN/S:.10f} Hyp: {(r/R)**4:.10f}")"
import math;a,b,c=13.0,14.0,15.0;s=(a+b+c)/2;S=math.sqrt(s*(s-a)*(s-b)*(s-c));R=S/s;cA=(b*b+c*c-a*a)/(2*b*c);sA=math.sqrt(1-cA*cA);Ax,Ay=0,0;Bx,By=c,0;Cx,Cy=b*cA,b*sA;Dx,Dy=Bx+(s-b)/a*(Cx-Bx),By+(s-b)/a*(Cy-By);Ex,Ey=Ax+(s-a)/b*(Cx-Ax),Ay+(s-a)/b*(Cy-Ay);Fx,Fy=Ax+(s-a)/c*(Bx-Ax),Ay+(s-a)/c*(By-Ay);S_DEF=0.5*abs(Dx*(Ey-Fy)+Ex*(Fy-Dy)+Fx*(Dy-Ey));DE=math.hypot(Dx-Ex,Dy-Ey);EF=math.hypot(Ex-Fx,Ey-Fy);FD=math.hypot(Fx-Dx,Fy-Dy);r=S_DEF/((DE+EF+FD)/2);vEFx,vEFy=Fx-Ex,Fy-Ey;tK=((Dx-Ex)*vEFx+(Dy-Ey)*vEFy)/(vEFx**2+vEFy**2);Kx,Ky=Ex+tK*vEFx,Ey+tK*vEFy;vFDx,vFDy=Dx-Fx,Dy-Fy;tM=((Ex-Fx)*vFDx+(Ey-Fy)*vFDy)/(vFDx**2+vFDy**2);Mx,My=Fx+tM*vFDx,Fy+tM*vFDy;vDEx,vDEy=Ex-Dx,Ey-Dy;tN=((Fx-Dx)*vDEx+(Fy-Dy)*vDEy)/(vDEx**2+vDEy**2);Nx,Ny=Dx+tN*vDEx,Dy+tN*vDEy;S_KMN=0.5*abs(Kx*(My-Ny)+Mx*(Ny-Ky)+Nx*(Ky-My));print(f"Ratio: {S_KMN/S:.10f} Hyp: {(r/R)**4:.10f}")
import math;a,b,c=13.0,14.0,15.0;s=(a+b+c)/2;S=math.sqrt(s*(s-a)*(s-b)*(s-c));R=S/s;cA=(b*b+c*c-a*a)/(2*b*c);sA=math.sqrt(1-cA*cA);Ax,Ay=0,0;Bx,By=c,0;Cx,Cy=b*cA,b*sA;Dx,Dy=Bx+(s-b)/a*(Cx-Bx),By+(s-b)/a*(Cy-By);Ex,Ey=Ax+(s-a)/b*(Cx-Ax),Ay+(s-a)/b*(Cy-Ay);Fx,Fy=Ax+(s-a)/c*(Bx-Ax),Ay+(s-a)/c*(By-Ay);S_DEF=0.5*abs(Dx*(Ey-Fy)+Ex*(Fy-Dy)+Fx*(Dy-Ey));DE=math.hypot(Dx-Ex,Dy-Ey);EF=math.hypot(Ex-Fx,Ey-Fy);FD=math.hypot(Fx-Dx,Fy-Dy);r=S_DEF/((DE+EF+FD)/2);vEFx,vEFy=Fx-Ex,Fy-Ey;tK=((Dx-Ex)*vEFx+(Dy-Ey)*vEFy)/(vEFx**2+vEFy**2);Kx,Ky=Ex+tK*vEFx,Ey+tK*vEFy;vFDx,vFDy=Dx-Fx,Dy-Fy;tM=((Ex-Fx)*vFDx+(Ey-Fy)*vFDy)/(vFDx**2+vFDy**2);Mx,My=Fx+tM*vFDx,Fy+tM*vFDy;vDEx,vDEy=Ex-Dx,Ey-Dy;tN=((Fx-Dx)*vDEx+(Fy-Dy)*vDEy)/(vDEx**2+vDEy**2);Nx,Ny=Dx+tN*vDEx,Dy+tN*vDEy;S_KMN=0.5*abs(Kx*(My-Ny)+Mx*(Ny-Ky)+Nx*(Ky-My));print(f"Ratio: {S_KMN/S:.10f} Hyp: {(r/R)**4:.10f}")
IyB5b3VyIGNvZGUgZ29lcyBoZXJlaW1wb3J0IG1hdGg7YSxiLGM9MTMuMCwxNC4wLDE1LjA7cz0oYStiK2MpLzI7Uz1tYXRoLnNxcnQocyoocy1hKSoocy1iKSoocy1jKSk7Uj1TL3M7Y0E9KGIqYitjKmMtYSphKS8oMipiKmMpO3NBPW1hdGguc3FydCgxLWNBKmNBKTtBeCxBeT0wLDA7QngsQnk9YywwO0N4LEN5PWIqY0EsYipzQTtEeCxEeT1CeCsocy1iKS9hKihDeC1CeCksQnkrKHMtYikvYSooQ3ktQnkpO0V4LEV5PUF4KyhzLWEpL2IqKEN4LUF4KSxBeSsocy1hKS9iKihDeS1BeSk7RngsRnk9QXgrKHMtYSkvYyooQngtQXgpLEF5KyhzLWEpL2MqKEJ5LUF5KTtTX0RFRj0wLjUqYWJzKER4KihFeS1GeSkrRXgqKEZ5LUR5KStGeCooRHktRXkpKTtERT1tYXRoLmh5cG90KER4LUV4LER5LUV5KTtFRj1tYXRoLmh5cG90KEV4LUZ4LEV5LUZ5KTtGRD1tYXRoLmh5cG90KEZ4LUR4LEZ5LUR5KTtyPVNfREVGLygoREUrRUYrRkQpLzIpO3ZFRngsdkVGeT1GeC1FeCxGeS1FeTt0Sz0oKER4LUV4KSp2RUZ4KyhEeS1FeSkqdkVGeSkvKHZFRngqKjIrdkVGeSoqMik7S3gsS3k9RXgrdEsqdkVGeCxFeSt0Syp2RUZ5O3ZGRHgsdkZEeT1EeC1GeCxEeS1GeTt0TT0oKEV4LUZ4KSp2RkR4KyhFeS1GeSkqdkZEeSkvKHZGRHgqKjIrdkZEeSoqMik7TXgsTXk9RngrdE0qdkZEeCxGeSt0TSp2RkR5O3ZERXgsdkRFeT1FeC1EeCxFeS1EeTt0Tj0oKEZ4LUR4KSp2REV4KyhGeS1EeSkqdkRFeSkvKHZERXgqKjIrdkRFeSoqMik7TngsTnk9RHgrdE4qdkRFeCxEeSt0Tip2REV5O1NfS01OPTAuNSphYnMoS3gqKE15LU55KStNeCooTnktS3kpK054KihLeS1NeSkpO3ByaW50KGYiUmF0aW86IHtTX0tNTi9TOi4xMGZ9IEh5cDogeyhyL1IpKio0Oi4xMGZ9IikiCmltcG9ydCBtYXRoO2EsYixjPTEzLjAsMTQuMCwxNS4wO3M9KGErYitjKS8yO1M9bWF0aC5zcXJ0KHMqKHMtYSkqKHMtYikqKHMtYykpO1I9Uy9zO2NBPShiKmIrYypjLWEqYSkvKDIqYipjKTtzQT1tYXRoLnNxcnQoMS1jQSpjQSk7QXgsQXk9MCwwO0J4LEJ5PWMsMDtDeCxDeT1iKmNBLGIqc0E7RHgsRHk9QngrKHMtYikvYSooQ3gtQngpLEJ5KyhzLWIpL2EqKEN5LUJ5KTtFeCxFeT1BeCsocy1hKS9iKihDeC1BeCksQXkrKHMtYSkvYiooQ3ktQXkpO0Z4LEZ5PUF4KyhzLWEpL2MqKEJ4LUF4KSxBeSsocy1hKS9jKihCeS1BeSk7U19ERUY9MC41KmFicyhEeCooRXktRnkpK0V4KihGeS1EeSkrRngqKER5LUV5KSk7REU9bWF0aC5oeXBvdChEeC1FeCxEeS1FeSk7RUY9bWF0aC5oeXBvdChFeC1GeCxFeS1GeSk7RkQ9bWF0aC5oeXBvdChGeC1EeCxGeS1EeSk7cj1TX0RFRi8oKERFK0VGK0ZEKS8yKTt2RUZ4LHZFRnk9RngtRXgsRnktRXk7dEs9KChEeC1FeCkqdkVGeCsoRHktRXkpKnZFRnkpLyh2RUZ4KioyK3ZFRnkqKjIpO0t4LEt5PUV4K3RLKnZFRngsRXkrdEsqdkVGeTt2RkR4LHZGRHk9RHgtRngsRHktRnk7dE09KChFeC1GeCkqdkZEeCsoRXktRnkpKnZGRHkpLyh2RkR4KioyK3ZGRHkqKjIpO014LE15PUZ4K3RNKnZGRHgsRnkrdE0qdkZEeTt2REV4LHZERXk9RXgtRHgsRXktRHk7dE49KChGeC1EeCkqdkRFeCsoRnktRHkpKnZERXkpLyh2REV4KioyK3ZERXkqKjIpO054LE55PUR4K3ROKnZERXgsRHkrdE4qdkRFeTtTX0tNTj0wLjUqYWJzKEt4KihNeS1OeSkrTXgqKE55LUt5KStOeCooS3ktTXkpKTtwcmludChmIlJhdGlvOiB7U19LTU4vUzouMTBmfSBIeXA6IHsoci9SKSoqNDouMTBmfSIpCgoKaW1wb3J0IG1hdGg7YSxiLGM9MTMuMCwxNC4wLDE1LjA7cz0oYStiK2MpLzI7Uz1tYXRoLnNxcnQocyoocy1hKSoocy1iKSoocy1jKSk7Uj1TL3M7Y0E9KGIqYitjKmMtYSphKS8oMipiKmMpO3NBPW1hdGguc3FydCgxLWNBKmNBKTtBeCxBeT0wLDA7QngsQnk9YywwO0N4LEN5PWIqY0EsYipzQTtEeCxEeT1CeCsocy1iKS9hKihDeC1CeCksQnkrKHMtYikvYSooQ3ktQnkpO0V4LEV5PUF4KyhzLWEpL2IqKEN4LUF4KSxBeSsocy1hKS9iKihDeS1BeSk7RngsRnk9QXgrKHMtYSkvYyooQngtQXgpLEF5KyhzLWEpL2MqKEJ5LUF5KTtTX0RFRj0wLjUqYWJzKER4KihFeS1GeSkrRXgqKEZ5LUR5KStGeCooRHktRXkpKTtERT1tYXRoLmh5cG90KER4LUV4LER5LUV5KTtFRj1tYXRoLmh5cG90KEV4LUZ4LEV5LUZ5KTtGRD1tYXRoLmh5cG90KEZ4LUR4LEZ5LUR5KTtyPVNfREVGLygoREUrRUYrRkQpLzIpO3ZFRngsdkVGeT1GeC1FeCxGeS1FeTt0Sz0oKER4LUV4KSp2RUZ4KyhEeS1FeSkqdkVGeSkvKHZFRngqKjIrdkVGeSoqMik7S3gsS3k9RXgrdEsqdkVGeCxFeSt0Syp2RUZ5O3ZGRHgsdkZEeT1EeC1GeCxEeS1GeTt0TT0oKEV4LUZ4KSp2RkR4KyhFeS1GeSkqdkZEeSkvKHZGRHgqKjIrdkZEeSoqMik7TXgsTXk9RngrdE0qdkZEeCxGeSt0TSp2RkR5O3ZERXgsdkRFeT1FeC1EeCxFeS1EeTt0Tj0oKEZ4LUR4KSp2REV4KyhGeS1EeSkqdkRFeSkvKHZERXgqKjIrdkRFeSoqMik7TngsTnk9RHgrdE4qdkRFeCxEeSt0Tip2REV5O1NfS01OPTAuNSphYnMoS3gqKE15LU55KStNeCooTnktS3kpK054KihLeS1NeSkpO3ByaW50KGYiUmF0aW86IHtTX0tNTi9TOi4xMGZ9IEh5cDogeyhyL1IpKio0Oi4xMGZ9Iik=