func_code_string: #include <bits/stdc++.h>   using namespace std;   const int MAXN = 3000 + 10;   int A[MAXN];   int B[MAXN];   long long dp[MAXN][MAXN];   int main() {     int n;     scanf( %d , &n);     for (int i = 0; i < n; i++) {       scanf( %d , &A[i]);       A[i] -= i;     }     memcpy(B, A, n * sizeof(int));     sort(B, B + n);     for (int j = 0; j < n; j++) {       dp[0][j] = abs(A[0] - B[j]);     }     for (int i = 1; i < n; i++) {       long long temp = dp[i - 1][0];       for (int j = 0; j < n; j++) {         temp = min(temp, dp[i - 1][j]);         dp[i][j] = temp + abs(A[i] - B[j]);       }     }     long long ans = *min_element(dp[n - 1], dp[n - 1] + n);     printf( %lld n , ans);     return 0;   }   