//Pだけ作るには //コーヒーがP * A/(A+B)、紅茶がP * B/(A+B)だけ必要。 //Pを増やしていってどちらかが足りなくなったら、その時のPが答え。 //2分探索でPを求めればよい。 //出力桁数に注意!!!!coutだと桁数が足りない #include #include using namespace std; bool isOk(double p, int a, int b, int x, int y) { return (p * a/(a+b) <= x && p * b/(a+b) <= y); } int main() { int a, b, x, y; cin >> a >> b >> x >> y; double st = 0, ed = 114514072, medi; while (st + 1e-12 <= ed) { medi = (st + ed)/2.0; if (isOk(medi, a, b, x, y) ) st = medi; else ed = medi; } printf("%f\n", medi); return 0; }