Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from collections import deque
- with open('9.0.txt', 'r') as f:
- n = int(f.readline())
- nums = []
- for _ in range(n):
- nums.append(int(f.readline()))
- for i in range(n):
- nums[i] *= 3
- '''
- res = float('inf')
- for i in range(n):
- cur = 0
- for k in range(1, (len(nums) - 1) // 2 + 1):
- cur += nums[(i + k) % len(nums)] * k + nums[i - k] * k
- if len(nums) % 2 == 0:
- cur += nums[(i + k + 1) % len(nums)] * (k + 1)
- res = min(res, cur)
- print(res)
- '''
- q1 = deque()
- q2 = deque()
- l = 1
- r = n - 1
- while l < r:
- q1.append(nums[l])
- q2.append(nums[r])
- l += 1
- r -= 1
- if l == r:
- q1.append(nums[l])
- k1 = sum(q1)
- k2 = sum(q2)
- len1 = len(q1)
- len2 = len(q2)
- s1 = 0
- s2 = 0
- for i in range(len1):
- s1 += q1[i] * (i + 1)
- for i in range(len2):
- s2 += q2[i] * (i + 1)
- res = s1 + s2
- for i in range(1, n):
- s1 = s1 - k1 + q2[-1] * len1
- s2 = s2 - q2[-1] * len2 + k2 - q2[-1] + nums[i - 1]
- k1 = k1 - q1[0] + q2[-1]
- k2 = k2 - q2[-1] + nums[i - 1]
- q1.popleft()
- q1.append(q2.pop())
- q2.appendleft(nums[i - 1])
- res = min(res, s1 + s2)
- print(res)
Add Comment
Please, Sign In to add comment