const INF:i32 = std::i32::MAX; fn getline() -> String { let mut s = String::new(); std::io::stdin().read_line(&mut s).ok(); return s; } fn main() { let n:i32 = getline().trim().parse().unwrap(); let mut m = 0; if n != 1 { let mut xs:Vec = getline().trim().split(' ').map(|x| x.parse().unwrap()).collect(); xs.sort(); m = INF; let mut p = xs[0]; for i in 1 .. xs.len() { let x = xs[i]; let d = x - p; if d != 0 && d < m { m = d; } p = x; } if m == INF { m = 0; } } println!("{}", m); }