Cod sursa(job #2574771)

Utilizator yo_andrei_2003Murica Andrei yo_andrei_2003 Data 6 martie 2020 09:46:24
Problema Deque Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.74 kb
#include <iostream>
#include <cstdio>
#include <deque>

using namespace std;

deque <int> ai;
deque <int> v;

int main()
{
    FILE *fin, *fout;
    long long n,k,i,s=0,x;
    fin=fopen("deque.in","r");
    fout=fopen("deque.out","w");
    fscanf(fin,"%lld %lld\n",&n,&k);
    for(i=1;i<=n;i++){
        fscanf(fin,"%lld",&x);
        if(!v.empty() && v.front()<i-k+1){
            ai.pop_front();
            v.pop_front();
        }
        while(!ai.empty() && ai.back()>x){
            ai.pop_back();
            v.pop_back();
        }
        ai.push_back(x);
        v.push_back(i);
        if(i>=k)
            s=s+ai.front();
    }
    fprintf(fout,"%lld\n",s);
    fclose(fin);
    fclose(fout);
    return 0;
}