B: Ball Dropping
几何问题。
相似三角形可得,β=(bh)/(a-b),勾股定理得:Side=sqrt(pow((a/2),2)+pow((h+β),2)),ans+β=(rSide)/(a/2);
在这里插入代码片
#include<bits/stdc++.h>
#include<algorithm>
using namespace std;
long double r, a, b, h;
int main() {
cin>>r>>a>>b>>h;
if ((r * 2.0) <= b) printf("Drop");
else {
printf("Stuck\n");
long double beta = b * h / (a - b);
long double side = sqrt((a / 2) * (a / 2) + (beta + h) * (beta + h));
cout<<setprecision(11)<<side * r / (a / 2) - beta<<endl;
}
return 0;
}