Cod sursa(job #1957583)

Utilizator stefdascalescuStefan Dascalescu stefdascalescu Data 7 aprilie 2017 17:15:13
Problema Deque Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.78 kb
#include<bits/stdc++.h>
using namespace std;
ifstream f("deque.in");
ofstream g("deque.out");
long long n,k,x,sol;
deque<long long>v;
deque<long long>poz;
int main()
{
    f>>n>>k;
    for(long long i=1;i<=n;++i)
    {
        f>>x;
        if(i>k)
            if(poz[0]==i-k)
            {
                v.pop_front();
                poz.pop_front();
            }
        if(i>=2)
        {
            long long z=v.size()-1;
            while(v[z]>=x)
            {
                v.pop_back();
                poz.pop_back();
                --z;
                if(z<0)
                    break;
            }
        }
        v.push_back(x);
        poz.push_back(i);
        if(i>=k)
            sol+=v[0];
    }
    g<<sol;
    return 0;
}