Cod sursa(job #1168307)

Utilizator cosminpdrfischer2004 cosminp Data 7 aprilie 2014 22:21:01
Problema Deque Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.68 kb
#include <cstdlib>
#include <fstream>
#include <deque>

using namespace std;

int main()
{
    int         				N, K;
    deque< pair<int, int> >  	Q;
    long long   				sum;
    fstream     				f, g;
    int         				x;

    f.open("deque.in", ios::in);
    g.open("deque.out", ios::out);

    f >> N >> K;
    sum = 0;
    for (int i = 0; i < N; i++)
    {
        f >> x;
        while ( (!Q.empty()) && (Q.back().first > x) ) Q.pop_back();
        Q.push_back(make_pair(x, i));

        if (i >= K - 1)
        {
            sum += Q.front().first;
            if (Q.front().second == i - K + 1) Q.pop_front();
        }
    }

    g << sum;

    f.close();
    g.close();

    return 0;
}