Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- using namespace std;
- typedef long long ll;
- typedef pair<int, int> ii;
- #define vt vector
- #define eb emplace_back
- #define pb push_back
- #define F first
- #define S second
- #define f(i, s, f) for(int i = s; i < f; ++i)
- #define fd(i, s, f) for(int i = s; i >= f; --i)
- #define r(x, ns) for(auto &x : ns)
- #define s(x) int(x.size())
- #define be(ns) ns.begin(), ns.end()
- #define rbe(ns) ns.rbegin(), ns.rend()
- const int INF = 1<<30, MOD = 1e9+7;
- const int mxn = 1e5+2, mxm = 102;
- int n, k;
- vt<int> vs(mxn);
- vt<ll> memo(mxn, -1);
- ll g(int i) {
- if(i == n) return 0;
- if(memo[i] != -1) return memo[i];
- ll ans = INF, v;
- f(j,1,min(n-i, k)+1) {
- v = abs(vs[i+j] - vs[i]);
- ans = min(ans, v + g(i+j));
- }
- return memo[i] = ans;
- }
- int main() {
- cin>>n>>k;
- f(i,1,n+1) cin>>vs[i];
- cout<<g(1)<<'\n';
- }
Advertisement
Add Comment
Please, Sign In to add comment