Cod sursa(job #1451016)

Utilizator TimoteiCopaciu Timotei Timotei Data 15 iunie 2015 19:18:19
Problema Deque Scor 60
Compilator cpp Status done
Runda Arhiva educationala Marime 0.46 kb
#include<fstream>
#define nmax 500005
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;
}