Cod sursa(job #1316874)

Utilizator lolmanDomuta Dariu lolman Data 14 ianuarie 2015 11:41:28
Problema Deque Scor 60
Compilator cpp Status done
Runda Arhiva educationala Marime 0.52 kb
#include <iostream>
#include <fstream>
using namespace std;
long long n,k,que[5000001],a[5000001],i,sum;
int first,last;
int main()
{
    ifstream f("deque.in");
    ofstream g("deque.out");
    f>>n>>k;
    for (i=1;i<=n;i++)
        f>>a[i];
    first=1;
    last=0;
    for (i=1;i<=n;i++)
    {
           while ((first <= last) && (a[i]<= a[ que [last] ])) last--;
           que [++last]=i;
           if (que[first]==i-k) first++;
           if (i>=k) sum+=a[que[first]];
    }
    g<<sum;
    return 0;
}