Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # cook your dish here
- import sys
- sys.setrecursionlimit(10**9)
- from functools import lru_cache
- def find(a):
- n=len(a)
- csum=[0]*n
- csum[0]=a[0]
- for i in range(1,n):
- csum[i]=csum[i-1]+a[i]
- def psum(i,j):
- return (csum[j]-csum[i]+a[i])%100
- #print(cs)
- @lru_cache()
- def dfs(s,e):
- if s>e:return 0
- if s==e:return 0
- ans=float('inf')
- for k in range(s,e):
- left=dfs(s,k)
- right=dfs(k+1,e)
- #print(left,right,psum(s,k),psum(k+1,e))
- ans=min(ans,left+right+psum(s,k)*psum(k+1,e))
- return ans
- return dfs(0,len(a)-1)
- while True:
- try:
- n=input()
- if not n:break
- a=list(map(int,input().split()))
- print(find(a))
- except:
- break
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement