H0_0H

Untitled

Jun 20th, 2022 (edited)
167
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.39 KB | None | 0 0
  1. from collections import deque
  2.  
  3. with open('9.0.txt', 'r') as f:
  4.     n = int(f.readline())
  5.     nums = []
  6.     for _ in range(n):
  7.         nums.append(int(f.readline()))
  8.  
  9.     for i in range(n):
  10.         nums[i] *= 3
  11.    
  12.     '''
  13.    res = float('inf')
  14.  
  15.    for i in range(n):
  16.        cur = 0
  17.        for k in range(1, (len(nums) - 1) // 2 + 1):
  18.            cur += nums[(i + k) % len(nums)] * k  + nums[i - k] * k
  19.        
  20.        if len(nums) % 2 == 0:
  21.            cur += nums[(i + k + 1) % len(nums)] * (k + 1)
  22.        
  23.        res = min(res, cur)
  24.  
  25.    print(res)
  26.    '''
  27.    
  28.     q1 = deque()
  29.     q2 = deque()
  30.     l = 1
  31.     r = n - 1
  32.     while l < r:
  33.         q1.append(nums[l])
  34.         q2.append(nums[r])
  35.         l += 1
  36.         r -= 1
  37.    
  38.     if l == r:
  39.         q1.append(nums[l])
  40.    
  41.     k1 = sum(q1)
  42.     k2 = sum(q2)
  43.     len1 = len(q1)
  44.     len2 = len(q2)
  45.     s1 = 0
  46.     s2 = 0
  47.     for i in range(len1):
  48.         s1 += q1[i] * (i + 1)
  49.     for i in range(len2):
  50.         s2 += q2[i] * (i + 1)
  51.    
  52.     res = s1 + s2
  53.  
  54.     for i in range(1, n):
  55.  
  56.         s1 = s1 - k1 + q2[-1] * len1
  57.         s2 = s2 - q2[-1] * len2 + k2 - q2[-1] + nums[i - 1]
  58.         k1 = k1 - q1[0] + q2[-1]
  59.         k2 = k2 - q2[-1] + nums[i - 1]
  60.         q1.popleft()
  61.         q1.append(q2.pop())
  62.         q2.appendleft(nums[i - 1])
  63.  
  64.         res = min(res, s1 + s2)
  65.    
  66.     print(res)
  67.  
  68.        
  69.    
Add Comment
Please, Sign In to add comment