Cod sursa(job #2213046)

Utilizator Vladi.BarasBaras Nicholas Vladimir Laurentiu Vladi.Baras Data 15 iunie 2018 16:13:43
Problema Deque Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.53 kb
#include <cstdio>

using namespace std;
const int N=5000000;
int d[N],v[N],n,k;
int main()
{
    freopen("deque.in","r",stdin);
    freopen("deque.out","w",stdout);
    int st=0,dr=-1,s=0;
    for(int i=1;i<n;i++)
    {
        scanf("%d",v[i]);///scot st
        if(d[st]==(i-k))
            st++;
        ///scot din dreapta acele poz pe care nu voi avea min
        while(st<=dr&&v[i]<=v[d[dr]])
        {
            --dr;
        }
        d[++dr]=i;
        if(i>=k-1)
            s+=v[d[st]];
    }
    printf("%d\n",s);
    return 0;
}