Skip to content

Instantly share code, notes, and snippets.

@binhngoc17
Created November 22, 2014 15:11
Show Gist options
  • Save binhngoc17/c6482e2bf3b81f2159a8 to your computer and use it in GitHub Desktop.
Save binhngoc17/c6482e2bf3b81f2159a8 to your computer and use it in GitHub Desktop.
Play Game Problem in Hacker Rank
import sys
import string
import fileinput
import pprint
inputs = fileinput.input()
input_vals = []
for n in inputs:
input_vals.append(n.replace('\n', ''))
numTestCase = int(input_vals[0])
data = []
for i in range(numTestCase):
data.append(
[int(i) for i in input_vals[(i +1) * 2].split(' ')]
)
for stack in data:
stack = stack[::-1]
maxScores = dict((i, 0) for i in range(-4, len(stack)))
for i in range(len(stack)):
if i < 3:
maxScores[i] = sum(stack[:i+1])
else:
moveMaxScore = []
for j in range(1, 4):
moveMaxScore.append(sum(stack[i+1-j:i+1]) +
min(maxScores[i-j-1], maxScores[i-j-2], maxScores[i-j-3]))
maxScores[i] = max(moveMaxScore)
print maxScores[len(stack) - 1]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment