Cod sursa(job #1008805)

Utilizator sebinechitasebi nechita sebinechita Data 11 octombrie 2013 21:06:41
Problema Deque Scor 25
Compilator cpp Status done
Runda Arhiva educationala Marime 0.87 kb
#include <iostream>
#include <fstream>
#include <cstring>
#include <string>
#include <climits>
#include <algorithm>
#include <cmath>
#include <queue>
#include <deque>
#include <iomanip>
#include <stack>
#include <cstdio>

using namespace std;

ifstream fin("deque.in");
ofstream fout("deque.out");
#define baza 10

#define MAX 5000100


deque <pair <int, int> > coada;


int main()
{

    int n,k, sum=0, i, s;
    fin>>n>>k;

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


        while(!coada.empty() && coada.back().first>=s)
        {
            coada.pop_back();
        }


        coada.push_back(make_pair(s,i));

        if(coada.front().second<=i-k)
        {
            coada.pop_front();
        }
        if(i>=k)
        {
            sum+=coada.front().first;
        }
    }
    fout<<sum;



    return 0;
}