Pagini recente » Cod sursa (job #489035) | Cod sursa (job #583500) | Cod sursa (job #91418) | Cod sursa (job #703347) | Cod sursa (job #2576429)
#!/bin/python3
import heapq
import os
import sys
#
# Complete the truckTour function below.
#
def solve(n, k, nums):
min_queue = []
pos_queue = []
for i in range(k):
while len(min_queue) > 0 and nums[i] < min_queue[len(min_queue) - 1]:
min_queue.pop()
pos_queue.pop()
min_queue.append(nums[i])
pos_queue.append(i)
result = min_queue[0]
for i in range(k, n):
while len(pos_queue) > 0 and pos_queue[0] <= i - k:
pos_queue.pop(0)
min_queue.pop(0)
while len(min_queue) > 0 and nums[i] < min_queue[len(min_queue) - 1]:
min_queue.pop()
pos_queue.pop()
min_queue.append(nums[i])
pos_queue.append(i)
result += min_queue[0]
return result
if __name__ == '__main__':
in_fptr = open('deque.in', 'r')
out_fptr = open('deque.out', 'w')
n, k = map(int, in_fptr.readline().rstrip().split())
nums = []
for i in range(n):
x = int(in_fptr.readline())
nums.append(x)
result = solve(n, k, nums)
# print(result)
out_fptr.write(str(result) + "\n")
in_fptr.close()
out_fptr.close()