Cod sursa(job #1310992)

Utilizator diana-t95FMI Tudoreanu Diana Elena diana-t95 Data 7 ianuarie 2015 16:45:45
Problema Deque Scor 30
Compilator cpp Status done
Runda Arhiva educationala Marime 0.74 kb
#include <iostream>
#include <deque>
#include <fstream>
using namespace std;
deque< pair<int, int> > d;
long long answer=0;
int n, k;
int main()
{
    ifstream f("deque.in");
    ofstream g("deque.out");
    int i, x;
    f>>n>>k;
    for (i=1;i<=k;i++)
    {
    f>>x;
    while (!d.empty() && d.back().first>x) d.pop_back();
    d.push_back(make_pair(x, i));
    }
    if (!d.empty() && d.front().second<=i-k) d.pop_front();
    answer+=d.front().first;
    for (i=k+1;i<=n;i++)
    {
        f>>x;
        while (!d.empty() && d.back().first>x)  d.pop_back();
        d.push_back(make_pair(x, i));
        if (!d.empty() && d.front().second<=i-k) d.pop_front();
        answer+=d.front().first;
    }
    g<<answer<<'\n';
}