Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <iostream>
- #include <vector>
- #include <algorithm>
- using namespace std;
- int main()
- {
- int n, k;
- cin >> n;
- cin >> k;
- int** dp = new int*[n]();
- int* b = new int[n]();
- int* v= new int[n]();
- for(int i=0;i<n;i++)
- {
- dp[i] = new int[n]();
- }
- for(int i=0;i<n;i++)
- {
- cin >> b[i];
- }
- for(int i=0;i<n;i++)
- {
- cin >> v[i];
- }
- for(int i =1;i<n;i++)
- {
- for(int j =0;j<n-i;j++)
- {
- int e = j+i;
- if(e>j){
- if(b[j] + k == b[e])
- {
- dp[j][e] = max(dp[j][e], v[j] + v[e] + dp[j+1][e-1]);
- }
- for(int a = 1;a<i;a++)
- {
- dp[j][e] = max(dp[j][e], dp[j][e-a] + dp[e-a+1][e]);
- }
- }
- }
- }
- cout << dp[0][n-1];
- }
Add Comment
Please, Sign In to add comment