fork download
  1. #include <iostream>
  2. #include <bits/stdc++.h>
  3. using namespace std;
  4.  
  5. void helper_fn(vector<int>&dp,vector<int>&arr,int k){
  6. int n=arr.size();
  7. dp[0]=0;
  8. if(n>=1){
  9. dp[1]=abs(arr[1]-arr[0]);
  10. }
  11.  
  12. for(int i=2;i<n;i++){
  13. int j=1;
  14. int ans=INT_MAX;
  15. while(j<=k && i-j>0){
  16. int option=dp[i-j]+abs(arr[i-j]-arr[i]);
  17. ans=min(ans,option);
  18. j++;
  19. }
  20. dp[i]=ans;
  21. }
  22. }
  23. int main(){
  24. int n,k;
  25. cin>>n;
  26. cin>>k;
  27. vector<int>arr(n);
  28. for(int i=0;i<n;i++){
  29. cin>>arr[i];
  30. }
  31.  
  32. vector<int>dp(n);
  33. helper_fn(dp,arr,k);
  34. cout<<"Minimum effort: "<<dp[n-1]<<endl;
  35. return 0;
  36. }
Success #stdin #stdout 0.01s 5316KB
stdin
3 1
10 20 10
stdout
Minimum effort: 20