let () = let rec unique_element list = let rec _unique_element l s = match l with | [] -> s | first :: rest -> if List.exists (fun e -> e = first) s then _unique_element rest s else _unique_element rest (s @ [first]) in _unique_element list [] in let n = Scanf.scanf "%d\n" (fun x -> x) in let lst = Array.to_list (Array.init n (fun _ -> Scanf.scanf "%d " (fun x -> x))) in let slst = unique_element (List.fast_sort compare lst) in Printf.printf "%d\n" (if List.length slst < 2 then 0 else fst (List.fold_left (fun (ans, bfr) x -> if abs(bfr - x) < ans then (abs(bfr - x), x) else (ans, x)) (max_int, List.hd slst) (List.tl slst)))