Submission #1061763

#TimeUsernameProblemLanguageResultExecution timeMemory
1061763MilosMilutinovicPeru (RMI20_peru)C++14
18 / 100
785 ms9848 KiB
#include "peru.h" #include <bits/stdc++.h> using namespace std; const int md = 1e9 + 7; int add(int x, int y) { return x + y < md ? x + y : x + y - md; } int mul(int x, int y) { return x * 1LL * y % md; } int solve(int n, int k, int* v) { const long long inf = (long long) 1e18; vector<long long> dp(n, inf); for (int i = 0; i < n; i++) { int mx = 0; for (int j = i; j >= 0; j--) { if (i - j + 1 > k) { break; } mx = max(mx, v[j]); dp[i] = min(dp[i], (j == 0 ? 0LL : dp[j - 1]) + mx); } } int res = 0; int pw = 1; for (int i = n - 1; i >= 0; i--) { dp[i] %= md; res = add(res, mul(pw, dp[i])); pw = mul(pw, 23); } return res; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...