func main() var N: int :: cui@input().toInt(&) var _: [][]char :: cui@input().split(" ") var A: []int :: #[N]int for i(0, N - 1) do A[i] :: _[i].toInt(&) end for var ans: int :: 10000 for l(0, N - 1) for c(l, N - 1) var r: int :: l + 2 * (c - l) if(r > N - 1) skip l end if do ans :: [ans, f(A, l, c)].min() end for end for do cui@print("\{ans}\n") func f(A: []int, left: int, center: int): int var right: int :: left + 2 * (center - left) var plus: int var minus: int for i(0, ^A - 1) if(i < left) do plus :+ A[i] elif(left <= i & i <= center) var targetVal: int :: i - left + 1 if(A[i] > targetVal) do plus :+ A[i] - targetVal elif(A[i] < targetVal) do minus :+ targetVal - A[i] end if elif(center < i & i <= right) var targetVal: int :: right - i + 1 if(A[i] > targetVal) do plus :+ A[i] - targetVal elif(A[i] < targetVal) do minus :+ targetVal - A[i] end if else do plus :+ A[i] end if end for if(plus >= minus) ret plus else ret 10000 end if end func end func