Cod sursa(job #1804141)

Utilizator Tyler_BMNIon Robert Gabriel Tyler_BMN Data 12 noiembrie 2016 11:42:54
Problema Deque Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.69 kb
#include <iostream>
#include <fstream>
#include <deque>

using namespace std;
deque<int> deq;

int n,k;
int a[5000005];
long long sum=0;


int main()
{
    ifstream fin("deque.in");
    ofstream fout("deque.out");

    fin>>n>>k;
    for(int i=1;i<=n;i++)
        fin>>a[i];

    for(int i=1;i<k;i++)
    {
        while(!deq.empty()&&deq.back()>a[i])
            deq.pop_back();
        deq.push_back(i);
    }
    for(int i=k;i<=n;i++)
    {
        while(!deq.empty()&&a[deq.back()]>a[i])
            deq.pop_back();
        deq.push_back(i);
        if(deq.front()==i-k)
            deq.pop_front();
        sum+=a[deq.front()];
    }
    fout<<sum;
    return 0;
}