Codeforces Round #349 (Div. 2) A. Pouring Rain
問題
Problem - A - Codeforces
直径cmの円筒があり,初めに高さcmだけ水が入っている.
毎秒mlで水を飲み,また雨によって毎秒cmだけ水かさが増すとき,
水を飲みきれるか,飲みきれるとしたら何秒かかるか.
解法
が成り立つので
ならば飲みきれ,
が答えになる.
#include <iostream> #include <vector> #include <algorithm> #include <cmath> #include <iomanip> using namespace std; #define RREP(i,s,e) for (i = s; i >= e; i--) #define rrep(i,n) RREP(i,n-1,0) #define REP(i,s,e) for (i = s; i < e; i++) #define rep(i,n) REP(i,0,n) #define INF 100000000 typedef long long ll; int main() { int d, h, v, e; double pi = acos(-1); cin >> d >> h >> v >> e; if (4*v > pi*d*d*e) { cout << "YES" << endl; cout << fixed << setprecision(5) << (pi*d*d*h)/(4*v-pi*d*d*e) << endl; } else cout << "NO" << endl; return 0; }