CODEM4 - Problem4
"Roadies" is back!!! In India, "Roadies" is a reality based tv show and is very popular among the youth.
This time to get selected into "Roadies" they challenge you to solve the given problem... if you can solve it you will be selected!
Challenge is as follows: Suppose you are given an array with even number of integers. Player 1 and player 2 take turns to pick numbers, either the left-most element or the right-most element. You have to find the maximum possible score (sum of numbers chosen) by player 1. Assume player 1 always starts the game and plays optimally.
Note: when an element is picked it is removed from the array.
But as usual this is "Roadies" hence cometh the twist. It is not known whether the second player is dumb or smart. As you know result will be different if player 2 is either dumb or smart.
NOTE: when player 2 plays like a dumb there is no fixed strategy of how he would choose the numbers i.e. he would choose the number either from start or end of an array without thinking... so there can be multiple answers possible when player 2 plays like a dumb...
So you have to tell the maximum possible score of player 1 when player 2 plays dumb and smart.
Input
T: number of test cases (t < 20).
For eact case two lines follow, first line contains the size of array (<= 30) and next line contains the elements of the array.
Output
For each case print in new line two space separated integers: score when player 2 is dumb and score when player 2 is smart.
Input: 2 4 5 8 4 2 4 8 5 4 2 Output: 13 10 13 12
NOTE: All values will fit in int type.
Explanation: In first test case (when player 2 is dumb) then player 1 first chooses 5 then player 2 can choose 8 or 2 but chooses 2. so now player 1 can choose either 8 or 4 so chooses 8. Hence total score is 13.
(when player 2 is smart) player 1 can choose 5 or 2 but chooses 2 (so that player 2 cannot choose 8 in his turn) so now player 2 can choose 5 or 4. Irrespective of what player 2 chooses player 1 will have option to choose 8 in his next turn hence total (8 + 2) = 10.
hide comments
shahzada:
2017-03-15 16:32:59
should be moved to tutorial. |
|
blackbitch_48:
2017-03-14 08:56:05
1
|
|
holmesherlock:
2017-03-06 19:47:06
simple recursion based problem
|
|
sarthakshah30:
2017-02-14 21:20:20
minimax algorithm
|
|
Dushyant Singh:
2016-12-02 10:53:56
int is sufficient |
|
sieunhanbom04:
2016-08-04 17:19:54
O(n^2). Why t <=30 I wonder? |
|
khanhpqbk:
2016-07-06 16:50:26
@kejriwal: YOU are right when player 2 is dumb. i have tried exhaustive search and result in the same answer as yours |
|
:.Mohib.::
2016-03-08 19:22:34
Nice one!!
|
|
Ankit Sultana:
2016-02-17 19:15:33
Changed to Long Long and AC.
|
|
kartikay singh:
2016-01-21 22:01:52
Easy but dp :P :-) |
Added by: | Bhavik |
Date: | 2014-02-04 |
Time limit: | 8.846s |
Source limit: | 50000B |
Memory limit: | 1536MB |
Cluster: | Cube (Intel G860) |
Languages: | All except: ASM64 |
Resource: | own problem(for CODE MARATHON) |