output_description: Print the minimum possible sadness of Snuke.
  
  * * *
input_description: Input is given from Standard Input in the following format:
  
      
      
      N
      A_1 A_2 ... A_N
attempt: N = int(input())
  a = list(map(int, input().split()))
  
  aa = [ai - i-1 for i,ai in enumerate(a)]
  
  def tri_search(f:"f(x:float)->float", left, right, iter=100)->float:
      for _ in range(iter):
          ml = (left*2 + right) / 3
          mr = (left + right*2) / 3
          if f(ml) < f(mr):
              right = mr
          else:
              left = ml
      # print(left, right)
      return (right + left) / 2
  
  def f(x):
      ret = 0
      x = int(x+0.5)
      for aai in aa:
          ret += abs(aai - x)
      return ret
  
  b = tri_search(f, -10**9, 10**9)
  print(min(f(b), f(b)+1, f(b)-1)
  
problem_description: Statement
  
  Snuke has an integer sequence A of length N.
  
  He will freely choose an integer b. Here, he will get sad if A_i and b+i are
  far from each other. More specifically, the _sadness_ of Snuke is calculated
  as follows:
  
    * abs(A_1 - (b+1)) + abs(A_2 - (b+2)) + ... + abs(A_N - (b+N))
  
  Here, abs(x) is a function that returns the absolute value of x.
  
  Find the minimum possible sadness of Snuke.
samples: [{"input": "5\n    2 2 3 5 5", "output": "2\n    \n\nIf we choose b=0, the sadness of Snuke would be\nabs(2-(0+1))+abs(2-(0+2))+abs(3-(0+3))+abs(5-(0+4))+abs(5-(0+5))=2. Any choice\nof b does not make the sadness of Snuke less than 2, so the answer is 2.\n\n* * *"}, {"input": "9\n    1 2 3 4 5 6 7 8 9", "output": "0\n    \n\n* * *"}, {"input": "6\n    6 5 4 3 2 1", "output": "18\n    \n\n* * *"}, {"input": "7\n    1 1 1 1 2 3 4", "output": "6"}]