Cod sursa(job #816108)

Utilizator lehman97Dimulescu David lehman97 Data 17 noiembrie 2012 12:13:16
Problema Deque Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.63 kb
#include <iostream>
#include <deque>
#include <stdio.h>
using namespace std;

FILE *f=fopen("deque.in","r");
FILE *g=fopen("deque.out","w");

int fr,bg,a[5000001],n,i,k;
long long sum=0;
deque<int> mydeque;


int main ()
{

   fscanf(f,"%d",&n);
   fscanf(f,"%d",&k);
    for(i=1;i<=n;i++)
    fscanf(f,"%d",&a[i]);

    for(i=1;i<=n;i++)
    {

        while(!mydeque.empty()&&a[i]<=a[mydeque.back()]) mydeque.pop_back();
        mydeque.push_back(i);
        if(mydeque.front()==i-k) mydeque.pop_front();
        if(i>=k) sum+=a[mydeque.front()];
    }
    fprintf(g,"%lld",sum);
  fclose(g);
  return 0;
}