Guest User

Untitled

a guest
Jun 20th, 2018
65
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.85 KB | None | 0 0
  1. samples = [([1,2,3,4,5,6,7,8,9], [4,5,6,7]),
  2. ([1,-2,-3,-4,-5,-6,10], [-4,-5,-6,10])]
  3.  
  4. def solve(task, k):
  5. i = 0
  6. j = 0
  7. s = 0
  8. predicateI = lambda s, k: s < k
  9. predicateJ = lambda s, k: s > k
  10. if k < 0:
  11. predicateI, predicateJ = predicateJ, predicateI
  12. while i < len(task) and j < len(task):
  13. if predicateI(s, k):
  14. s += task[i]
  15. i += 1
  16. if predicateJ(s, k):
  17. s -= task[j]
  18. j += 1
  19. if s == k:
  20. return (i,j)
  21. return (-1,-1)
  22.  
  23.  
  24. for task, solution in samples:
  25. k = sum(solution)
  26. i, j = solve(task, k)
  27. solved = sum(task[j:i])
  28. if solved != k:
  29. 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))
  30.  
  31. print("all problems solved successfuly (or not)")
Add Comment
Please, Sign In to add comment