![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
1 #include <cstdio> 2 #include <cstring> 3 #include <cmath> 4 #include <algorithm> 5 using namespace std; 6 const double pi=acos(-1.0); 7 8 int main() 9 { 10 double a,r; 11 scanf("%lf%lf",&a,&r); 12 if(a>=r*2) printf("%.3lf ",pi*r*r);//绳子形成的圆在正方形内 13 else if(r>=sqrt(2)*a/2) printf("%.3lf ",a*a);//正方形在圆内 14 else 15 { 16 double a1=a/2.0/r; 17 double s1=sqrt(1-a1*a1); 18 double ji=atan(s1/a1); 19 double s=r*s1*a/2.0*4+(pi/2-ji*2)*r*r/2.0*4; 20 printf("%.3lf ",s); 21 } 22 return 0; 23 }