Cod sursa(job #811116)

Utilizator chimistuFMI Stirb Andrei chimistu Data 11 noiembrie 2012 15:42:15
Problema Deque Scor 15
Compilator cpp Status done
Runda Arhiva educationala Marime 0.57 kb
#include <cstdio>
#include <cstdlib>
FILE*f;
FILE*g;
int A[5000001],deq[5000001];
int main()
{   
    
    long long s;
    long n,k,i,st,dr;
    f=fopen("deque.in","r");
    g=fopen("deque.out","w");
    fscanf(f,"%d%d",&n,&k);s=0;
    for (i=1;i<=n;i++)
        fscanf(f,"%d",&A[i]);
    st=1;dr=0;
    for (i=1;i<=n;i++)
    {   while ((A[i]<=deq[dr]) && (st<=dr))
              dr--;
         deq[++dr]=A[i];
         if (deq[st]==A[i-k]) st++;
         if (i>=k) s=s+deq[st];
         }
    fprintf(g,"%lld",s);
    return 0;
}