Cod sursa(job #815902)

Utilizator radu2004GOLD radu radu2004 Data 17 noiembrie 2012 11:55:08
Problema Deque Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.5 kb
#include <cstdio>

using namespace std;
FILE *f,*g;
int deque [5000001],a[5000001],k,n,front,back,i;
long long s;
int main()
{f=fopen ("deque.in","r");
 g=fopen ("deque.out","w");
 fscanf (f,"%d %d",&n,&k);
 for (i=1;i<=n;i++) fscanf (f,"%d",&a[i]);
 front=1;
 back=0;
 for (i=1;i<=n;i++)
 {
     while (front<=back && a[i]<a[deque[back]]) back--;
     deque [++back]=i;
     if (deque[front]==i-k) front ++;
     if (i>=k) s+=a[deque[front]];
 }
 fprintf (g,"%lld",s);
    return 0;
}