Cod sursa(job #2731491)

Utilizator oana_mireaMirea Oana-Gabriela oana_mirea Data 27 martie 2021 20:52:22
Problema Deque Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.67 kb
#include <iostream>
#include <fstream>

using namespace std;

void Push(int deq[],int &x,int nr)
{
    x++;
    deq[x]=nr;
}
void PopBack(int deq[],int &x)
{
    x--;
}
    int v[5000001],deq[5000001];
ifstream f("deque.in");
ofstream g("deque.out");
int main()
{

    int first=1, last=0,n,k;
    long s=0;
    f>>n;
    f>>k;

    for(int i=1;i<=n;i++)
        f>>v[i];
    for(int i=1;i<=n;i++)
        {while((first<=last) &&(v[i]<=v[deq[last]]))
            PopBack(deq,last);
        Push(deq,last,i);
        if(deq[first] == i-k)
            first++;
        if(i>=k)
            s+=v[deq[first]];
        }
    g<<s;


    return 0;
}