#include #ifdef DEBUG #include #else #define dump(...) #endif const long double eps = 1e-7; /** * @title 二次方程式の実数解 * @docs quadratic_equation.md */ std::vector quadratic_equation(long double a, long double b, long double c){ long double d = b*b - 4*a*c; if(d < 0) return {}; long double x1 = (-b + std::sqrt(d)) / (2 * a); long double x2 = (-b - std::sqrt(d)) / (2 * a); return {x1, x2}; } int main(){ int a, b, c, d; while(std::cin >> a >> b >> c >> d){ int64_t A = 2; int64_t B = a-c; int64_t C = b-d; int64_t D = B * B - 4 * A * C; if(D < 0){ std::cout << "No\n"; }else if(D == 0){ std::cout << "Yes\n"; }else{ auto res = quadratic_equation(2.0, a-c, b-d); auto x1 = res[0], x2 = res[1]; auto y1 = x1 * x1 + x1 * a + b; auto y2 = x2 * x2 + x2 * a + b; auto p = (y2 - y1) / (x2 - x1); p = std::abs(p); auto q = y1 - p * x1; std::cout << std::fixed << std::setprecision(12) << p << " " << q << "\n"; } } return 0; }