fn main() { let n: usize = get_a_value(); let mut xv: Vec = get_line(); xv.sort(); xv.dedup(); if xv.len() != n { println!("NO"); return; } let delta = xv[1] - xv[0]; for i in 2..n { if xv[i] - xv[i - 1] != delta { println!("NO"); return; } } println!("YES"); } #[allow(unused)] fn get_a_value() -> T { let mut s = String::new(); std::io::stdin().read_line(&mut s).ok(); s.trim().parse().ok().unwrap() } #[allow(unused)] fn get_line() -> Vec { let mut s = String::new(); std::io::stdin().read_line(&mut s).ok(); s.trim() .split_whitespace() .map(|e| e.parse().ok().unwrap()) .collect() }