Cod sursa(job #913765)

Utilizator gbi250Gabriela Moldovan gbi250 Data 13 martie 2013 19:17:22
Problema Deque Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.65 kb
#include <cstdio>
#include <deque>
#include <cstdio>
#include <iostream>
#define DIM  5000001
std::deque <int> Deque;
using namespace std;
FILE *fin=fopen("deque.in", "r"), *fout=fopen("deque.out", "w");
int n, k, i, a[DIM];
long long MIN;
int main()
{


    fscanf(fin, "%d %d", &n, &k);

    for(i=1;i<=n;i++)
        fscanf(fin, "%d", &a[i]);


    for(i=1;i<=n;i++)
    {

        while(!Deque.empty()&&a[Deque.back()]>=a[i])
            Deque.pop_back();

        Deque.push_back(i);

        if(Deque.front()==i-k)
            Deque.pop_front();

        if(i>=k)
            MIN+=a[Deque.front()];

    }
    fprintf(fout, "%lld\n", MIN);

    return 0;
}