Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- using namespace std;
- typedef long long ll;
- int main() {
- ios::sync_with_stdio(0);
- cin.tie(0);
- int n, m, k;
- cin >> n >> m >> k;
- vector <int> p(n);
- for (int i = 0; i < n; i++) {
- cin >> p[i];
- }
- vector <int> b(m + 1);
- for (int i = 0; i <= m; i++) {
- cin >> b[i];
- }
- vector <ll> dp(k + 1, 0);
- for (int i = 0; i < n; i++) {
- vector <ll> go(k + 1, 0);
- for (int j = 0; j <= k; j++) {
- for (int x = 0; x <= k; x++) {
- if (x > j) break;
- int add = j - x;
- if (p[i] + add > m) continue;
- go[j] = max(go[j], dp[x] + b[p[i] + add]);
- }
- }
- dp = go;
- }
- ll ans = 0;
- for (int i = 0; i <= k; i++) {
- ans = max(ans, dp[i]);
- }
- cout << ans << '\n';
- return 0;
- }
Add Comment
Please, Sign In to add comment