Cod sursa(job #1451018)

Utilizator TimoteiCopaciu Timotei Timotei Data 15 iunie 2015 19:19:36
Problema Deque Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.47 kb
#include<fstream>
#define nmax 5000010
using namespace std;
int a[nmax],deq[nmax],n,k;
long long sol;
int main()
{
    ifstream f("deque.in");
    ofstream g("deque.out");
    f>>n>>k;
    for(int i=1;i<=n;i++)f>>a[i];
    int fro=1;
    int bac=0;
    for(int i=1;i<=n;i++)
    {
        while(fro<=bac&&a[i]<=a[deq[bac]])bac--;
        deq[++bac]=i;
        if(deq[fro]==i-k)fro++;
        if(i>=k)sol+=a[deq[fro]];
    }
    g<<sol;
    return 0;
}