Pagini recente » Cod sursa (job #2534142) | Cod sursa (job #2342981) | Cod sursa (job #2089911) | Cod sursa (job #1823086) | Cod sursa (job #2729198)
from sys import maxsize
def empty(deque):
if len(deque)==0:
return True
return False
def pushback(deque,item):
deque.append(item)
def pushfront(deque, item):
deque.insert(0,item)
def popback(deque):
if empty(deque)==True:
return str(-maxsize)
return deque.pop()
def popfront(deque):
if empty(deque)==True:
return str(-maxsize)
return deque.pop(0)
f=open("deque.in")
g=open("deque.out","w")
deque=[]
l=[int(x) for x in f.readline().split()]
N,K=l[0],l[1]
suma=0
c=0
L=[int(i) for i in f]
for i in range(len(L)):
if c>=K:
suma += deque[0]
index = L.index(deque[0], 0)
c = K - 1
if index <= i - K:
popfront(deque)
while L.index(deque[0], 0)<i-K:
popfront(deque)
if len(deque)==0 or L[i]<=deque[0]:
pushfront(deque, L[i])
c+=1
elif L[i]>=deque[len(deque)-1]:
pushback(deque,L[i])
c+=1
else:
while L[i]<=deque[len(deque) - 1]:
popback(deque)
pushback(deque, L[i])
c += 1
suma+=deque[0]
g.write(str(suma))