program c

integer(8) :: n,a(200000),nn,ans=0

read(*,*) n
read(*,*) (a(i),i=1,n)

do i=1,n
	a(i) = a(i) - i
enddo

call heapsort(n,a(1:n))
nn = a((n+1)/2)

do i=1,n
	a(i) = abs(a(i) - nn)
enddo

write(*,*) sum(a(1:n))



contains

subroutine heapsort(n,y1)

	implicit none
	integer(8),intent(in) :: n
	integer(8),intent(inout) :: y1(1:n)
	integer(8) :: i,k,j,l
	integer(8) :: t1
	
	l = n/2+1
	k = n

	do while (k /= 1)
		 if(l > 1) then
				l = l-1
				t1 = y1(l)
				
		 else
				t1 = y1(k)
				y1(k) = y1(1)
				k = k-1
				if(k == 1) then
					 y1(1) = t1
					 exit
				endif
		 endif

		 i = l
		 j = l+l

		 do while(j <= k)
				if(j < k) then
					 if(y1(j) < y1(j+1)) j = j+1
				endif
				
				if (t1 < y1(j)) then
					 y1(i) = y1(j)
					 i = j
					 j = j+j
				else
					 j = k+1
				endif
		 
		 enddo
		 
		 y1(i) = t1
	
	enddo
	return

end subroutine heapsort

end program