Guest User

Untitled

a guest
Jan 14th, 2016
89
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.71 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <iostream>
  3. #include <vector>
  4. #include <algorithm>
  5.  
  6. using namespace std;
  7.  
  8. int main()
  9. {
  10.     int n, k;
  11.     cin >> n;
  12.     cin >> k;
  13.     int** dp = new int*[n]();
  14.     int* b = new int[n]();
  15.     int* v= new int[n]();
  16.     for(int i=0;i<n;i++)
  17.     {
  18.         dp[i] = new int[n]();
  19.     }
  20.     for(int i=0;i<n;i++)
  21.     {
  22.         cin >> b[i];
  23.     }
  24.     for(int i=0;i<n;i++)
  25.     {
  26.         cin >> v[i];
  27.     }
  28.    
  29.     for(int i =1;i<n;i++)
  30.     {
  31.         for(int j =0;j<n-i;j++)
  32.         {
  33.             int e = j+i;
  34.             if(e>j){
  35.                 if(b[j] + k == b[e])
  36.                 {
  37.                     dp[j][e] = max(dp[j][e], v[j] + v[e] + dp[j+1][e-1]);
  38.                 }
  39.                 for(int a = 1;a<i;a++)
  40.                 {
  41.                     dp[j][e] = max(dp[j][e], dp[j][e-a] + dp[e-a+1][e]);
  42.                 }
  43.            
  44.             }
  45.            
  46.         }
  47.     }
  48.     cout << dp[0][n-1];
  49. }
Add Comment
Please, Sign In to add comment