Cod sursa(job #1753767)

Utilizator andrei_uAndrei andrei_u Data 7 septembrie 2016 10:02:30
Problema Deque Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.59 kb
#include <fstream>
using namespace std;
ifstream cin("deque.in");
ofstream cout("deque.out");
struct elem{
int v,p;
};
elem q[5000001];
long long s;
int n,i,st=1,dr=0,k,x;
int main()
{
    cin>>n>>k;
    for (i=1; i<=k; ++i)
    {
        cin>>x;
        while(st<=dr && q[dr].v>=x) --dr;
        q[++dr].v=x;
        q[dr].p=i;
    }
    s+=q[st].v;


    for (i=k+1; i<=n; ++i)
    {
        cin>>x;
        while(st<=dr && q[dr].v>=x) --dr;
        q[++dr].v=x;
        q[dr].p=i;

        if(q[st].p<=i-k) st++;
        s+=q[st].v;
    }

    cout<<s;
    return 0;
}