二分水下高度为,因为,所以,所以我们可以求水下的体积来得到,从而得到需要的答案. 球方程为:,水下面积为,将水面下方的物体垂直的分为一片一片的小圆柱体,然后积分区间就为[0,h],即,最后久可以得到
#pragma GCC optimize(2)
#pragma GCC optimize(3,"Ofast","inline")
# include<bits/stdc++.h>
# define PII pair<int,int>
# define PDI pair<double,int>
# define PIII pair<int,PII>
# define int long long
using namespace std;
const int N = 2e5+10;
const int mod = 32768;
const int inf = 0x3f3f3f3f;
const double pi = acos(-1);
int T,n,m,k1,k2,ans,k;
void solve(){
double r,m;
cin >> r >> m;
double L = 0 , R = 2 * r ;
while(R - L >= 1e-12){
double mid = (L + R )/2;
if(pi * (r*mid*mid-mid*mid*mid/3) > m) R = mid;
else L = mid;
}
cout<<fixed<<setprecision(2)<<2*r-L;
}
/*
*/
signed main(){
std::ios::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
// cin >> T;
T = 1;
while(T--){
solve();
}
return 0;
}