Cod sursa(job #791696)

Utilizator preg_concursPregatire Concurs preg_concurs Data 24 septembrie 2012 21:12:24
Problema Deque Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.67 kb
#include<iostream>
#include<cstdio>
#define max 5000010

using namespace std;


int main(){

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

   long n,k,x,y,front,back;
   long deque[max],vect[max];
   long long s=0;

   fscanf(f,"%ld",&n);
   fscanf(f,"%ld",&k);
   front=1;
   back=0;
   for(long i=1;i<=n;i++){

       fscanf(f,"%d",&x);
       vect[i]=x;

       while(front<=back && deque[back]>x)
             back--;

        deque[++back]=x;

        if(i>k && deque[front]==vect[i-k])
          front++;

       if(i>=k)
          s+=deque[front];




   }

   fprintf(g,"%ld",s);




    return 0;
}