fn main() { let stdin = std::io::read_to_string(std::io::stdin()).unwrap(); let mut stdin = stdin.split_ascii_whitespace(); let p: (i32, i32) = ( stdin.next().unwrap().parse().unwrap(), stdin.next().unwrap().parse().unwrap(), ); let q: (i32, i32) = ( stdin.next().unwrap().parse().unwrap(), stdin.next().unwrap().parse().unwrap(), ); println!("{}", output(solve(p, q))); } fn solve(p: (i32, i32), q: (i32, i32)) -> u32 { p.0.abs_diff(q.0) + p.1.abs_diff(q.1) } fn output(ans: u32) -> String { (ans >> 1).to_string() + match ans & 1 { 0 => "", 1 => ".5", _ => unreachable!(), } }