题目链接 codeforces 667A
题意
有一个水杯,起始时杯子里有 h厘米高的水,杯子直径为d ,喝水的速度为每秒 v 立方厘米,每秒下雨进入使水位升高 e厘米,问能否喝光被子里的水,如果能输出“YES” 和多少秒喝完,不能输出 NO
题解
当进入杯子中的水比出去的水多的时候,永远也喝不完
否则可以 列出方程 h * PI * r * r + e * PI * r * r * t = v * t
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
int main(){
double d, h, v, e;
cin >> d >> h >> v >> e;
d = d / 2;
double PI = atan2(0, -1);
if(v / (PI * d * d) <= e){
cout << "NO" << endl;
}
else{
cout << "YES" << endl;
printf("%.12lf\n",h*PI*d*d/(v-e*PI*d*d));
}
return 0;
}
来源:https://blog.csdn.net/error311/article/details/98748487