Cod sursa(job #322960)

Utilizator freak93Adrian Budau freak93 Data 10 iunie 2009 14:26:18
Problema Deque Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.53 kb
#include<fstream>
#define maxn 5500003

using namespace std;

ifstream f("deque.in");
ofstream g("deque.out");

int a[maxn],i,deque[maxn],n,p,q,k;

void add(int x)
{
    while(q>=p&&a[deque[q]]>=a[x]) --q;

    deque[++q]=x;

}

long long s;

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

    p=1;
    q=1;

    for(i=1;i<=n;++i)
    {
        f>>a[i];

        add(i);

        while(deque[p]<=i-k) ++p;

        if(i>=k) s+=a[deque[p]];

    }

    g<<s<<"\n";

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

    return 0;
}