Cod sursa(job #2107559)

Utilizator alex2209alexPavel Alexandru alex2209alex Data 17 ianuarie 2018 15:26:53
Problema Deque Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.67 kb
#include <fstream>
#include <deque>
#define mp make_pair
using namespace std;
ifstream f("deque.in");
ofstream g("deque.out");
deque<pair<long long,long long> >dq;
int n,k,v[5000001];
long long s;
int main()
{
    f>>n>>k;
    for(int i=1;i<=n;i++)
    {
        f>>v[i];
        pair<long long,long long> x=mp(v[i],i);
        while(dq.front().second<=i-k && !dq.empty())
        {
            dq.pop_front();
        }
        while(dq.back().first>=v[i] && !dq.empty())
        {
            dq.pop_back();
        }
        dq.push_back(x);
        if(i>=k)
        {
            s=s+dq.front().first;
        }
    }
    g<<s<<'\n';
    return 0;
}