Submission #1222291

#TimeUsernameProblemLanguageResultExecution timeMemory
1222291__moin__Peru (RMI20_peru)C++20
0 / 100
1093 ms29768 KiB
#include <bits/stdc++.h> using namespace std; #include "peru.h" #define int long long const int p = 1e9+7; __int32_t solve(__int32_t n, __int32_t k, __int32_t* v){ vector<int> dp(n); function<int(int)> get = [&](int idx) { if (idx < 0) return 0ll; return (int)dp[idx]; }; for (int i = 0; i < n; i++) { int curmin = 1e18; int runmax = v[i]; for (int j = i-1; j >= i-k; j--) { curmin = min(curmin, (get(j) + runmax)%p); runmax = max(runmax, (int)(j < 0 ? 0 : v[j])); } dp[i] = curmin; } int factor = 1; int 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 timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...