Cod sursa(job #1181919)

Utilizator armandpredaPreda Armand armandpreda Data 4 mai 2014 11:52:06
Problema Deque Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.55 kb
#include <cstdio>
#define MAX 5000001
using namespace std;

FILE*fin=fopen("deque.in","r");
FILE*fout=fopen("deque.out","w");
int n,k,v[MAX],q[MAX], p, u;
long long rez;
int main()
{
    int i;
    fscanf(fin,"%d%d",&n,&k);
    for(i=1;i<=n;++i)
        fscanf(fin,"%d",v+i);
    p = 1;
    for(i=1; i<=n; i++){
        while(p<=u and v[q[u]]>=v[i]) u--;
        q[++u] = i;
        if(q[p]==i-k) p++;
        if(i>=k)
            rez = rez+v[q[p]];
    }
    fprintf(fout, "%lld\n", rez);
    fclose(fin);
    fclose(fout);
    return 0;
}