#include <bits/stdc++.h>
using namespace std;
#include "peru.h"
#define ll long long
const ll p = 1e9+7;
__int32_t solve(__int32_t n, __int32_t k, __int32_t* v){
vector<int> dp(n);
function<ll(int)> get = [&](int idx) {
if (idx < 0) return 0ll;
return (ll)dp[idx];
};
for (int i = 0; i < n; i++) {
ll curmin = 1e18;
ll runmax = v[i];
for (int j = i-1; j >= i-k; j--) {
curmin = min(curmin, (get(j) + runmax)%p);
runmax = max(runmax, (ll)(j < 0 ? 0 : v[j]));
}
dp[i] = curmin;
}
ll factor = 1;
ll res = 0;
for (int i = n-1; i >= 0; i--) {
res += (dp[i]*factor) % p;
res %= p;
factor *= 23;
factor %= p;
}
return res;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |