#include using namespace std; #define rep(i, n) for (int i = 0; i < (n); ++i) using ll = long long; using ull = unsigned long long; inline ll sqr(ll x) { return x * x; } int main() { cin.tie(nullptr)->sync_with_stdio(false); ll a, b, c, d; cin >> a >> b >> c >> d; ll det = sqr(a - c) - 8 * (b - d); if (det < 0) { cout << "No" << '\n'; } else if (det == 0) { cout << "Yes" << '\n'; } else { long double sqrtdet = sqrtl(det); auto f = [&](long double x) { return x * x + a * x + b; }; auto g = [&](long double x) { return -x * x + c * x + d; }; long double x1 = (-(a - c) - sqrtdet) / 4; long double x2 = (-(a - c) + sqrtdet) / 4; assert(abs(f(x1) - g(x1)) < 1e-9); assert(abs(f(x2) - g(x2)) < 1e-9); long double y1 = f(x1), y2 = f(x2); long double p = (y2 - y1) / (x2 - x1); long double q = y1 - p * x1; assert(abs((y2 - p * x2) - q) < 1e-9); cout << fixed << setprecision(15) << p << ' ' << q << '\n'; } return 0; }