Cod sursa(job #1294232)

Utilizator rocandu16Badulescu Dan Andrei rocandu16 Data 17 decembrie 2014 09:50:39
Problema Deque Scor 25
Compilator cpp Status done
Runda Arhiva educationala Marime 0.59 kb
#include <cstdio>

#define MAX 5000000
using namespace std;
int dq[MAX+1],v[MAX];
int main()
{
    FILE *fin,*fout;
    fin=fopen("deque.in","r");
    fout=fopen("deque.out","w");
    int n,k,i,init=1,vf=0;
    long long sum=0;

    fscanf(fin,"%d%d%d",&n,&k,&v[1]);


    dq[++vf]=1;
    for(i=2; i<=n; i++)
    {
        fscanf(fin,"%d",&v[i]);


        while(init<=vf && v[i]<v[dq[vf]])
            vf--;



         dq[++vf]=i;
         if(i-dq[init]== k)
        {
            init++;
        }
        if(i>=k)
            sum+=v[dq[init]];


    }

    fprintf(fout,"%d",sum);
    return 0;
}