Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- def g(a, x):
- pref_a = [0] * len(a)
- pref_a[0] = a[0]
- for i in range(1, len(a)):
- pref_a[i] = pref_a[i-1] + a[i]
- ans = 10**100
- ## print(len(a))
- for i in range(len(a)):
- if pref_a[i] == x:
- ans = min(ans, i + 1)
- for j in range(i + 1, len(a)):
- s = pref_a[j] - pref_a[i]
- #print(i, j, s)
- if s > x:
- break
- if s == x:
- ans = min(ans, j - i)
- return ans
- f = open('27-111b.txt')
- n, x = [int(i) for i in f.readline().split()] # n - кол-во емкостей
- # x - наша цель!
- a = [int(i) for i in f.read().split()]
- ##n, x = 7, 18
- ##a = [37, 5, 22, 3, 10, 5, 3, 21, 15, 28]
- a_new = []
- tmp = []
- ans = 10**100
- for i in range(len(a)):
- if a[i] == x:
- ans = 1
- elif a[i] < x:
- tmp.append(a[i])
- elif a[i] > x:
- if tmp != []:
- a_new.append(tmp)
- tmp = []
- ##if tmp != []:
- a_new.append(tmp)
- tmp = []
- if len(a_new) > 1:
- a_new[0] = a_new[-1] + a_new[0]
- a_new = a_new[:len(a_new) - 1]
- if ans != 1:
- for i in a_new:
- r = g(i, x)
- ans = min(ans, r)
- print(ans)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement