Submission #1173870

#TimeUsernameProblemLanguageResultExecution timeMemory
1173870ezzzayCollecting Mushrooms (NOI18_collectmushrooms)C++20
0 / 100
73 ms328 KiB
#include<bits/stdc++.h> using namespace std; #define ff first #define int long long #define ss second #define pb push_back const int N=555; int dp[N]; int a[N]; int tmp[N]; int find(int l, int r){ int h=1e14; for(int i=l;i<=r;i++){ h=min(h,tmp[i]); } return h; } signed main(){ int n,h; cin>>n>>h; for(int i=1;i<=n;i++)cin>>a[i]; for(int i=0;i<N;i++){ dp[i]=1e15; } for(int i=0;i<N;i++){ dp[i]=abs(a[1]-i); } for(int i=2;i<=n;i++){ for(int j=0;j<N;j++)tmp[j]=dp[j]; for(int j=0;j<N;j++){ int r=max(0ll, min(j+h,N-1)); int l=min(N-1,max(0ll,j-h)); dp[j]=find(l,r)+abs(j-a[i]); } } int ans=1e15; for(int i=0;i<N;i++){ ans=min(ans,dp[i]); } cout<<ans; }
#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...