Optimal Strategy for a Game
You and your friend Ninjax are playing a game of coins. Ninjax place the 'N' number of coins in a straight line.
The rule of the game is as follows:
1. Each coin has a value associated with it.
2. It’s a two-player game played against an opponent with alternating turns.
3. At each turn, the player picks either the first or the last coin from the line and permanently removes it.
4. The value associated with the coin picked by the player adds up to the total amount the player wins.
Ninjax is a good friend of yours and asks you to start first.
Your task is to find the maximum amount you can definitely win at the end of this game.
Note:
'N' is always even number.
Ninjax is as smart as you, so he will play so as to maximize the amount he wins.
Example 1:
Let the values associated with four coins be: [9, 5, 21, 7]
Let’s say that initially, you pick 9 and Ninjax picks 7.
Then, you pick 21 and Ninjax picks 5.
So, you win a total amount of (9+21), i.e. 30.
In case you would have picked up 7 initially and Ninjax would have picked 21 (as he plays optimally).
Then, you would pick 9 and Ninjax would choose 5. So, you win a total amount of (7+9), i.e. 16, which is not the maximum you can obtain.
Thus, the maximum amount you can win is 30.
Example 2:
Let the values associated with four coins be: [20, 50, 5, 10]
Let’s say that initially, you pick 10 and Ninjax picks 20.
Then, you pick 50 and Ninjax picks 5.
So, you win a total amount of (10+50), i.e. 60.
In case you would have picked up 20 initially and Ninjax would have picked 50 (as he plays optimally).
Then, you would pick 10 and Ninjax would choose 5. So, you win a total amount of (20+10), i.e. 30, which is not the maximum you can obtain.
Thus, the maximum amount you can win is 60.
Input format:
The very first line of input contains an integer T denoting the number of test cases.
The first line of every test case contains an integer ‘N’ denoting the number of coins present in the line initially.
The second line of every test case contains ‘N’ space-separated integers denoting the values associated with the coins placed by Ninjax.
Output format:
For each test case, print the required answer in a separate line.
Note:
You do not need to print anything, it has already been taken care of. Just implement the given function.
Constraints:
1 <= 'T' <= 10
2 <= 'N' <= 10 ^ 3
0 <= 'VALUE' <= 10 ^ 5
Where 'T' is the number of test cases, 'N' is the number of coins and 'VALUE' is the amount on each coin.
Time Limit: 1 sec
AnswerBot
1y
The task is to find the maximum amount you can definitely win in a game of coins against an opponent who plays optimally.
The game is played with alternating turns, and each player can pick the first o...read more
CodingNinjas
author
2y
Recursive Brute Force
- Suppose it's your turn and you are left with coins in the index range ['I', ‘J’] (other coins have already been picked up in previous turns). You have the option to pick either it...read more
CodingNinjas
author
2y
Optimized Recursive Brute Force
In the previous approach, we were making 4 recursive calls every time we called the helper function but a better approach to solve, would be as follows:
- We’ll use a help...read more
CodingNinjas
author
2y
DP Memoization
Approach 1 solves the same sub-problems multiple times i.e. helper function gets called for the same sub-array (index range) multiple times.
- For example: Consider calling helper function ...read more
CodingNinjas
author
2y
DP Memoization
- Approach 2 solves the same sub-problems multiple times i.e. helper function gets called for the same sub-array (index range) multiple times.
For example: Consider calling helper function ...read more
CodingNinjas
author
2y
DP Tabulation
The idea behind the approach will be:
Suppose it's your turn and you are left with coins in the index range ['I', ‘J’] (other coins have already been picked up in previous turns). You have...read more
Add answer anonymously...
Top Cisco Data Engineer interview questions & answers
Popular interview questions of Data Engineer
Top HR questions asked in Cisco Data Engineer
Stay ahead in your career. Get AmbitionBox app
Helping over 1 Crore job seekers every month in choosing their right fit company
65 L+
Reviews
4 L+
Interviews
4 Cr+
Salaries
1 Cr+
Users/Month
Contribute to help millions
Get AmbitionBox app