Cod sursa(job #1625837)

Utilizator andi12Draghici Andrei andi12 Data 2 martie 2016 20:51:38
Problema Deque Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.6 kb
#include <cstdio>

using namespace std;
const int N=5000005;
int v[N],deq[N];
int main()
{
    FILE *in,*out;
    in=fopen("deque.in","r");
    out=fopen("deque.out","w");
    int st,dr,i,n,k;
    long long sum=0;
    fscanf(in,"%d%d",&n,&k);
    for(i=1;i<=n;i++)
        fscanf(in,"%d",&v[i]);
    st=1;
    dr=0;
    for(i=1;i<=n;i++)
    {
        while(st<=dr && v[i]<deq[dr])
            dr--;
        dr++;
        deq[dr]=v[i];
        if(deq[st]==v[i-k])
            st++;
        if(i>=k)
            sum=sum+deq[st];
    }
    fprintf(out,"%lld",sum);
    return 0;
}