Cod sursa(job #2729198)

Utilizator radu_gGeorgescu Radu radu_g Data 24 martie 2021 13:48:40
Problema Deque Scor 10
Compilator py Status done
Runda Arhiva educationala Marime 1.22 kb
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))