Submission #1143629

#TimeUsernameProblemLanguageResultExecution timeMemory
1143629psm9352Safety (NOI18_safety)C++20
13 / 100
164 ms836 KiB
#include <iostream>
#include <vector>
#include <iomanip>

using namespace std;
using ll = long long;

int main(){
    ios_base::sync_with_stdio(false);cin.tie(NULL);
    int n,h;cin >> n >> h;
    int k = 400; // chnage to maxbound of arr[i]
    vector<int> arr(n+1);for (int i = 1;i<=n;i++){cin >> arr[i];}
    vector<ll> dp(k+1,0);
    for (int i = 0;i<=k;i++){
        dp[i]=abs(arr[1]-i);
    }
    for (int i = 2;i<=n;i++){
        vector<ll> ndp(k+1,1e18);
        for (int p = 0;p<=k;p++){
            for (int j = max(0,p-h);j<=min(k,p+h);j++){
                ndp[p]=min(ndp[p],dp[j]+abs(arr[i]-p));
            }
        }
        dp = ndp;
    }
    ll ans = 1e18;
    for (int i = 0;i<=k;i++){
        ans = min(ans,dp[i]);
    }
    cout << ans << "\n";
    return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...