Cod sursa(job #816026)

Utilizator radu2004GOLD radu radu2004 Data 17 noiembrie 2012 12:06:03
Problema Deque Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.53 kb
#include <cstdio>
#include <deque>
using namespace std;
FILE *f,*g;
int a[5000001],k,n,front,back,i;
deque <int> mdeque;
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]);

 for (i=1;i<=n;i++)
 {
     while (!mdeque.empty() && a[i]<a[mdeque.back()]) mdeque.pop_back();
     mdeque.push_back(i);
     if (mdeque.front()==i-k) mdeque.pop_front();
     if (i>=k) s+=a[mdeque.front()];
 }
 fprintf (g,"%lld",s);
    return 0;
}