Cod sursa(job #2351908)

Utilizator CleliaClelia Maria Dobrescu Clelia Data 22 februarie 2019 19:57:48
Problema Deque Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.66 kb
#include <cstdio>
#include <deque>
using namespace std;
deque <int> d1,d2;
int main (){
    FILE *fin=fopen ("deque.in","r");
    FILE *fout=fopen ("deque.out","w");
    int n,k,i,nr;
    long long s=0;
    fscanf (fin,"%d %d",&n,&k);
    for (i=1;i<=n;i++){
        fscanf (fin,"%d",&nr);
        while (!d1.empty() && d2.front()<i-k+1){
            d1.pop_front();
            d2.pop_front();
        }
        while (!d1.empty() && nr<d1.back()){
            d1.pop_back();
            d2.pop_back();
        }
        d1.push_back(nr);
        d2.push_back(i);
        if (i>=k)
            s+=d1.front();
    }
    fprintf (fout,"%lld",s);
}