Advertisement
SuitNdtie

Pairs of Four

May 31st, 2019
127
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.67 KB | None | 0 0
  1. #include<stdio.h>
  2. #include<algorithm>
  3. using namespace std;
  4. int n;
  5. char arr[1010];
  6.  
  7. int dp[1010][1010];
  8.  
  9. int cal(int L,int R)
  10. {
  11.     if(L>=R)return 0;
  12.     if(dp[L][R] != -1)return dp[L][R];
  13.     int maxa = cal(L+1,R);
  14.     for(int m = L + 1 ; m <= R ; m ++){
  15.         if(arr[L] == arr[m])
  16.             maxa = max(maxa , cal(L+1,m-1) + cal(m+1,R) + 1);
  17.     }
  18.     return dp[L][R] = maxa;
  19. }
  20.  
  21. int main()
  22. {
  23.     for(int i = 0 ; i < 1010 ; i ++)for(int j = 0 ; j < 1010 ; j ++)dp[i][j] = -1;
  24.  //   freopen("input3.txt","r",stdin);
  25.     scanf("%d",&n);
  26.     for(int i = 0 ; i < n ; i ++){
  27.         scanf(" %c",&arr[i]);
  28.     }
  29.     printf("%d",cal(0,n-1));
  30.     return 0;
  31. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement