Cod sursa(job #2044273)

Utilizator AlexTudor22Alex Brinza AlexTudor22 Data 21 octombrie 2017 09:08:52
Problema Deque Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.63 kb
#include <iostream>
#include <fstream>
#include <deque>
#define nmax 5000005
using namespace std;

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

deque <int> D;
int v[nmax];
int i,n,k;
long long s;

void Citire()
    {
     fin>>n>>k;
     for(i=1;i<=n;++i) fin>>v[i];
    }

void Rezolvare()
    {
     for(i=1;i<=n;++i)
        {
         while(!D.empty() && v[D.back()]>=v[i])
            D.pop_back();
         D.push_back(i);
         if(i-k==D.front()) D.pop_front();
         if(i>=k) s+=v[D.front()];
        }
    }


int main()
{
    Citire();
    Rezolvare();
    fout<<s;
    return 0;
}