Cod sursa(job #1294226)

Utilizator rocandu16Badulescu Dan Andrei rocandu16 Data 17 decembrie 2014 09:33:04
Problema Deque Scor 25
Compilator cpp Status done
Runda Arhiva educationala Marime 0.56 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",&n,&k);

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

        if(i-dq[init]== k)
        {
            init++;
        }
        while(init<=vf && v[i]<=v[dq[vf]])
               vf--;



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

    }

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