#![allow(non_snake_case, unused_imports)] use std::cmp::{min, max}; use std::collections::{BinaryHeap, Bound, HashMap, HashSet, VecDeque}; use std::hash::Hash; use std::ops::RangeBounds; use ac_library::{Additive, Min, Segtree}; use proconio::{input, marker::Usize1, marker::Chars}; use itertools::Itertools; #[allow(unused_macros)] macro_rules! d { ( $( $x:expr ),* $(,)? ) => { eprintln!( concat!( $( stringify!($x), "={:?} " ),* ), $( $x ),* ); }; } #[allow(dead_code)] fn yn(b: bool) -> &'static str { if b { "Yes" } else { "No" } } fn main() { input! { H: usize, W: usize, A: Usize1, B: Usize1, R1: Usize1, C1: Usize1, R2: Usize1, C2: Usize1, P: Usize1, Q: Usize1, } let mut ans = usize::MAX; for r in R1..=R2 { for c in C1..=C2 { let a = A.abs_diff(r) + B.abs_diff(c); let b = P.abs_diff(r) + Q.abs_diff(c); let c = P.abs_diff(A) + Q.abs_diff(B); ans = ans.min(a+b+c); } } println!("{}", ans); }