Cod sursa(job #1883288)

Utilizator vladcoroian2001Vlad Coroian vladcoroian2001 Data 17 februarie 2017 20:59:41
Problema Deque Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.62 kb
#include <fstream>
#include <deque>
#include <stdio.h>
using namespace std;
ifstream fi("deque.in");
ofstream fo("deque.out");
int n,k,i;
int A[5000001];
long long sum;
deque <int> D;
int main()
{
    FILE *fi;
    fi=fopen("deque.in","r");
    fscanf(fi,"%d",&n);
    fscanf(fi,"%d",&k);
    for(i=1;i<=n;i++)
    {
        fscanf(fi,"%d",&A[i]);
        while(!D.empty() and A[i]<D.back())
            D.pop_back();
        D.push_back(A[i]);
        if(i>=k and D.front()==A[i-k])
            D.pop_front();
        if(i>=k)
            sum+=D.front();
    }
    fo<<sum;
    fo.close();
    return 0;
}