Submission #1134256

#TimeUsernameProblemLanguageResultExecution timeMemory
1134256LuvidiSafety (NOI18_safety)C++20
0 / 100
175 ms327680 KiB
#include <bits/stdc++.h>
using namespace std;

#define ll long long

int main(){
    ll n,h;
    cin>>n>>h;
    ll a[n+1],m=0;
    for(int i=1;i<=n;i++){
        cin>>a[i];
        m=max(m,a[i]);
    }
    ll dp[n+1][m+1],ans=1e18;
    memset(dp,0,sizeof(dp));
    for(int i=1;i<=n;i++){
        for(int j=1;j<=m;j++){
            dp[i][j]=1e18;
            for(int k=1;k<=m;k++)if(abs(j-k)<=h){
                dp[i][j]=min(dp[i][j],dp[i-1][k]+abs(a[i]-j));
            }
            if(i==n)ans=min(ans,dp[i][j]);
        }
    }
    cout<<ans<<'\n';
}
#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...