Cod sursa(job #1359994)

Utilizator horiainfoTurcuman Horia horiainfo Data 25 februarie 2015 10:41:42
Problema Deque Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.72 kb
#include <fstream>
#include <cstdio>
#define NMAX 5000002
using namespace std;
ofstream fout("deque.out");
int n,k,poz,j,inc,sf,x;
long long s;
struct dequ{int poz,val;} a[NMAX];
int main()
{
    freopen("deque.in","r",stdin);
    scanf("%d%d",&n,&k);
    inc=1,sf=1; a[1].poz=1;
    scanf("%d",&a[1].val);
    for(int i=2;i<=k;i++)
    {
        scanf("%d",&x);
        while(x<a[sf].val && sf>=inc)  sf--;
        a[++sf].val=x; a[sf].poz=i;
    }
    s=a[inc].val;
    for(int i=k+1;i<=n;i++)
    {
        scanf("%d",&x);
        while(i-k>=a[inc].poz) inc++;
        while(x<a[sf].val && sf>=inc)  sf--;
        a[++sf].val=x; a[sf].poz=i;
        s=s+a[inc].val;
    }
    fout<<s<<'\n';
    return 0;
}