var y: []int func main() var n: int :: cui@input().toInt(&) var ss: [][]char :: cui@input().split(" ") do @y :: #[n]int for i(0, n - 1) do @y[i] :: ss[i].toInt(&) end for do @y.sort() var yMin: int :: @y.min() var yMax: int :: @y.max() while(yMax - yMin > 2) var y1: int :: yMin + (yMax - yMin) * 1 / 3 var y2: int :: yMin + (yMax - yMin) * 2 / 3 if(f(y1) > f(y2)) do yMin :: y1 else do yMax :: y2 end if end while var ans: int :: [f(yMin), f(yMin + 1), f(yMax + 1), f(yMin + 2)].min() do cui@print("\{ans}\n") func f(y: int): int var res: int :: 0 for i(0, ^@y - 1) do res :+ (@y[i] - y).abs() end for ret res end func end func