import
java.util.*;
class
GFG {
static
class
Pair<K, V> {
K key;
V value;
public
Pair(K first, V second)
{
this
.key = first;
this
.value = second;
}
}
static
Pair<Integer, String>
maxScore(
int
[]money,
int
beg,
int
ed)
{
int
totalTurns = money.length;
int
turnsTillNow
= beg + ((totalTurns -
1
) - ed);
if
(beg == ed) {
if
(turnsTillNow %
2
==
0
)
return
new
Pair<Integer, String>(
money[beg],
"L"
);
else
return
new
Pair<Integer, String>(
0
,
"L"
);
}
Pair<Integer, String> scoreOne
= maxScore(money, beg +
1
, ed);
Pair<Integer, String> scoreTwo
= maxScore(money, beg, ed -
1
);
if
(turnsTillNow %
2
==
0
) {
if
(money[beg] + scoreOne.key
> money[ed] + scoreTwo.key) {
return
new
Pair<Integer, String>(money[beg] + scoreOne.key,
"L"
+ scoreOne.value);
}
else
return
new
Pair<Integer, String>(
money[ed] + scoreTwo.key,
"R"
+ scoreTwo.value);
}
else
{
if
(scoreOne.key < scoreTwo.key)
return
new
Pair<Integer, String>(
scoreOne.key,
"L"
+ scoreOne.value);
else
return
new
Pair<Integer, String>(
scoreTwo.key +
110
,
"R"
+ scoreTwo.value);
}
}
public
static
void
main(String[] args)
{
int
[] ar = {
10
,
80
,
90
,
30
};
int
arraySize = ar.length;
int
[]bags =
new
int
[arraySize];
Pair<Integer, String> ans
= maxScore(bags,
0
, bags.length -
1
);
System.out.println(ans.key +
" "
+ ans.value);
}
}