Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- int arr[101][101];
- int dp(int i,int j,int A[],int s){
- if(arr[i][j]!=-1)return arr[i][j];
- if(i+1==j)return max(A[i],A[j]);
- arr[i][j]=max(s-dp(i+1,j,A,s-A[i]),s-dp(i,j-1,A,s-A[j]));
- return arr[i][j];
- }
- int maxCoins(int A[],int N)
- {
- int s=0;
- if(N==1)return A[0];
- for(int i=0;i<=N;i++)for(int j=0;j<=N;j++)arr[i][j]=-1;
- for(int i=0;i<N;i++)s+=A[i];
- return dp(0,N-1,A,s);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement