Cod sursa(job #2670319)

Utilizator BOSSSTEFANPetrescu Ioan Stefan BOSSSTEFAN Data 9 noiembrie 2020 17:56:27
Problema Deque Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.59 kb
#include <cstdio>

using namespace std;
FILE *fin=fopen("deque.in","r");
FILE *fout=fopen("deque.out","w");
int coada[5000001],v[5000001];
int main()
{
    int n,k,inc,sf,i;
    long long suma=0;
    fscanf(fin,"%d%d%d",&n,&k,&v[1]);
    inc=1;
    sf=1;
    coada[1]=1;
    for(i=2;i<=n;i++)
    {
        fscanf(fin,"%d",&v[i]);
        while(v[i]<v[coada[sf]]&&sf>=inc)
            sf--;
        sf++;
        coada[sf]=i;
        if(coada[inc]<i-k+1)
            inc++;
        if(i>=k)
            suma+=v[coada[inc]];
    }
    fprintf(fout,"%lld",suma);
    return 0;
}