Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #define ll int
- int Solution::solve(const vector<int> &A)
- {
- if(A.size()==1)
- return 1;
- ll i,j,k,n=A.size();
- unordered_map<ll,ll> M;
- ll DP[n][n],ans=0;
- for(i=0;i<n;i++)
- {
- for(j=i+1;j<n;j++)
- {
- k=-1;
- DP[i][j]=2;
- ll x=2*A[i]-A[j];
- if(M[x]>0)
- {k=M[x]-1;}
- if(k<i && k>=0)
- DP[i][j]=max(DP[i][j],DP[k][i]+1);
- ans=max(ans,DP[i][j]);
- }
- M[A[i]]=i+1;
- }
- return ans;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement