func_code_string: #include <bits/stdc++.h>   using namespace std;   template <typename T>   void chmax(T& a, const T& b) {     if (a < b) a = b;   }   template <typename T>   void chmin(T& a, const T& b) {     if (a > b) a = b;   }   int N, M;   long long dp[3001][3001];   const long long INF = 1e17;   int main() {     cin.tie(0);     ios::sync_with_stdio(false);     cin >> N;     vector<int> A(N), B(N);     for (int i = (0); i < (N); i++) {       cin >> A[i];       A[i] -= i;       B[i] = A[i];     }     sort((B).begin(), (B).end());     B.erase(unique((B).begin(), (B).end()), B.end());     M = B.size();     fill(dp[0], dp[N + 1], INF);     dp[0][0] = 0;     for (int i = (0); i < (N); i++) {       for (int j = (0); j < (M); j++) {         chmin(dp[i + 1][j], dp[i][j] + abs(A[i] - B[j]));         chmin(dp[i][j + 1], dp[i][j]);       }     }     long long ans = INF;     for (int i = (0); i < (M); i++) {       chmin(ans, dp[N][i]);     }     cout << ans << endl;     return 0;   }   