Cod sursa(job #1836393)

Utilizator leeviiTempfli Levente2 leevii Data 28 decembrie 2016 12:41:25
Problema Deque Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.54 kb
#include <iostream>
#include <deque>
#include <utility>
#include <fstream>

using namespace std;

ifstream fin("deque.in");
ofstream fout("deque.out");

typedef pair<int,int> P;

deque<P> d;

int i,n,k,a;
long long sum;

int main()
{
    fin>>n>>k;

    for(i=1;i<=n;i++)
    {
        fin>>a;

        while(!d.empty() && d.front().second<i+1-k) d.pop_front();

        while(!d.empty() && d.back().first>=a ) d.pop_back();

        d.push_back(P(a,i));

        if(i>=k) sum+=d.front().first;
    }
    fout<<sum;
}