fn run() { let mut s = String::new(); std::io::stdin().read_line(&mut s).unwrap(); let mut it = s.trim().split_whitespace(); let a: i64 = it.next().unwrap().parse().unwrap(); let b: i64 = it.next().unwrap().parse().unwrap(); let c: i64 = it.next().unwrap().parse().unwrap(); let d: i64 = it.next().unwrap().parse().unwrap(); let det = (a - c).pow(2) - 4 * 2 * (b - d); if det < 0 { println!("No"); } else if det == 0 { println!("Yes"); } else { let f = |x: f64| -> f64 { x * x + a as f64 * x + b as f64 }; let det = (det as f64).sqrt(); let p = (-(a - c) as f64 + det) / 4.0; let q = (-(a - c) as f64 - det) / 4.0; println!("{} {}", p, q); let fp = f(p); let fq = f(q); println!("{:.7} {:.7}", (fp - fq) / (p - q), fq - (fp - fq) / (p - q) * q); } } fn main() { run(); }