Joao_Joao

Frog 2 - AtCoder - TopDown

Jul 22nd, 2022
1,263
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.85 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3.  
  4. typedef long long ll;
  5. typedef pair<int, int> ii;
  6.  
  7. #define vt vector
  8. #define eb emplace_back
  9. #define pb push_back
  10. #define F first
  11. #define S second
  12. #define f(i, s, f) for(int i = s; i < f; ++i)
  13. #define fd(i, s, f) for(int i = s; i >= f; --i)
  14. #define r(x, ns) for(auto &x : ns)
  15. #define s(x) int(x.size())
  16. #define be(ns) ns.begin(), ns.end()
  17. #define rbe(ns) ns.rbegin(), ns.rend()
  18.  
  19. const int INF = 1<<30, MOD = 1e9+7;
  20. const int mxn = 1e5+2, mxm = 102;
  21.  
  22. int n, k;
  23. vt<int> vs(mxn);
  24. vt<ll> memo(mxn, -1);
  25.  
  26. ll g(int i) {
  27.   if(i == n) return 0;
  28.   if(memo[i] != -1) return memo[i];
  29.   ll ans = INF, v;
  30.   f(j,1,min(n-i, k)+1) {
  31.     v = abs(vs[i+j] - vs[i]);
  32.     ans = min(ans, v + g(i+j));
  33.   }
  34.   return memo[i] = ans;
  35. }
  36.  
  37. int main() {
  38.   cin>>n>>k;
  39.   f(i,1,n+1) cin>>vs[i];
  40.   cout<<g(1)<<'\n';
  41. }
  42.  
Advertisement
Add Comment
Please, Sign In to add comment