Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- samples = [([1,2,3,4,5,6,7,8,9], [4,5,6,7]),
- ([1,-2,-3,-4,-5,-6,10], [-4,-5,-6,10])]
- def solve(task, k):
- i = 0
- j = 0
- s = 0
- predicateI = lambda s, k: s < k
- predicateJ = lambda s, k: s > k
- if k < 0:
- predicateI, predicateJ = predicateJ, predicateI
- while i < len(task) and j < len(task):
- if predicateI(s, k):
- s += task[i]
- i += 1
- if predicateJ(s, k):
- s -= task[j]
- j += 1
- if s == k:
- return (i,j)
- return (-1,-1)
- for task, solution in samples:
- k = sum(solution)
- i, j = solve(task, k)
- solved = sum(task[j:i])
- if solved != k:
- print("mistake! for {0}, {4} one of the right solutions is {1}, but was {2}, {3}".format(task, solution, (j,i), task[j:i], k))
- print("all problems solved successfuly (or not)")
Add Comment
Please, Sign In to add comment