思路:我们可以表示出红色部分的面积,可以发现当两个小圆半径相等的时候,红色部分面积最大,所以二分枚举验证即可,精度要求较大。
#include<bits/stdc++.h>
using namespace std;
double pi=acos(-1);
double cal(double x){
return pi*x*x/4;
}
double s;
int main()
{
ios::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
cin>>s;
double l=1,r=1e5;
double ans=0;
while(r-l>=0.00001){
double mid=(l+r)/2;
if(cal(mid)>=s){
ans=mid;
r=mid;
}
else l=mid;
}
cout<<fixed<<setprecision(3)<<ans<<endl;
}