fn main() { let mut abcd = String::new(); std::io::stdin().read_line(&mut abcd).ok(); let abcd: Vec = abcd.trim().split_whitespace().map(|s| s.parse().unwrap()).collect(); let a = abcd[0]; let b = abcd[1]; let c = abcd[2]; let d = abcd[3]; let base = (a - c) * (a - c) - 8 * (b - d); if base < 0 { println!("No"); } else if base == 0 { println!("Yes"); } else if a == -c { let base: f64 = ((base as f64) / 16.0).sqrt() - ((a - c) as f64 / 4.0); println!("{} {:.8}", 0, base*base + (a as f64) * base + b as f64); } else { let base: f64 = ((base as f64) / 16.0).sqrt(); let x0: f64 = - (a - c) as f64 / 4.0 + base; let x1: f64 = - (a - c) as f64 / 4.0 - base; let y0: f64 = x0*x0 + (a as f64) * x0 + b as f64; let y1: f64 = x1*x1 + (a as f64) * x1 + b as f64; let p: f64 = if x0 > x1 { (y0 - y1) / (x0 - x1) } else { (y1 - y0) / (x1 - x0) }; let q: f64 = y0 - p * x0; println!("{:.8} {:.8}", p, q); } }