Skip to content

Instantly share code, notes, and snippets.

@limabeans
Last active November 29, 2018 06:08
Show Gist options
  • Save limabeans/df3b66abb5cdb7b13023d1f8c7d0c0d4 to your computer and use it in GitHub Desktop.
Save limabeans/df3b66abb5cdb7b13023d1f8c7d0c0d4 to your computer and use it in GitHub Desktop.
uva787
import sys
readints=lambda:map(int, input().strip('\n').split())
# use python due to biginteger issues
def maxprod(arr):
maxarr=arr[0]
minarr=arr[0]
haszero = arr[0]==0
ans = arr[0]
for i in range(1,len(arr)):
ans=max(ans,arr[i])
if arr[i]==0:
haszero=True
continue
if arr[i-1]==0:
maxarr=minarr=arr[i]
continue
maxarr2 = max(maxarr*arr[i],minarr*arr[i],arr[i])
minarr2 = min(maxarr*arr[i],minarr*arr[i],arr[i])
maxarr,minarr = maxarr2,minarr2
ans = max(ans, maxarr)
if haszero: return max(0, ans)
return ans
while True:
try:
line = list(readints())
except EOFError:
sys.exit(0)
ans = maxprod(line[:-1])
print(ans)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment