Guest User

Untitled

a guest
Jan 25th, 2020
107
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.90 KB | None | 0 0
  1. #include<iostream>
  2. #include<algorithm>
  3. using namespace std;
  4.  
  5. int optimalGameStrategy(int *a, int i, int j){
  6.     // cout<<"i and j"<<i << " "<<j<<endl;
  7.    for(int k = i; k <= j; k++)
  8.     //     cout<<a[k]<<" ";
  9.     // cout<<endl;
  10.     if(i == j){
  11.          //cout<<" return max = "<<a[i]<<endl;
  12.         return a[i];
  13.     }
  14.     if(i+1 == j){
  15.        // cout<<" return max = "<<max(a[i],a[j])<<endl;
  16.         return max(a[i],a[j]);
  17.        
  18.     }
  19.        
  20.     int piyush = max(a[i] + min(optimalGameStrategy(a, i + 2, j), optimalGameStrategy(a, i + 1, j - 1)) ,
  21.     a[j] + min(optimalGameStrategy(a, i + 1, j - 1), optimalGameStrategy(a, i, j - 2)));
  22.     // cout<<"piyush = "<<piyush<<endl;
  23.        
  24.     return piyush;
  25. }
  26.  
  27. int main(){
  28.     int n;
  29.     cin>>n;
  30.     int *a = new int[n];
  31.     for(int i = 0; i < n; i++)
  32.         cin>>a[i];
  33.     cout<<optimalGameStrategy(a, 0, n - 1);
  34.    
  35.     return 0;
  36. }
Add Comment
Please, Sign In to add comment