fork download
  1. // Minimum cost to reach the final index with atmost k jumps
  2. #include<bits/stdc++.h>
  3. using namespace std;
  4.  
  5. #define ll long long
  6.  
  7. int main(){
  8. ios_base::sync_with_stdio(false);
  9. cin.tie(NULL);
  10. ll n,k;
  11. cin>>n>>k;
  12. vector<ll>cost(n+1),dp(n+1);
  13. for(int i=1;i<=n;i++)cin>>cost[i];
  14. dp[0]=0;
  15. for(int i=1;i<=n;i++)dp[i]=INT_MAX;
  16. multiset<ll>s;
  17. s.insert(dp[0]);
  18. for(int i=1;i<=n;i++){
  19. dp[i]=cost[i]+*s.begin();
  20. s.insert(dp[i]);
  21. if(i-k>=0){
  22. s.erase(dp[i-k]);
  23. }
  24. }
  25. cout<<dp[n];
  26. return 0;
  27. }
Success #stdin #stdout 0.01s 5324KB
stdin
6 5
1 1 1 3 5 2
stdout
3