Cod sursa(job #2060725)

Utilizator VladimirPopa123Vladimir Popa VladimirPopa123 Data 8 noiembrie 2017 17:30:35
Problema Deque Scor 25
Compilator cpp Status done
Runda Arhiva educationala Marime 0.52 kb
#include<fstream>
using namespace std;
ifstream fin("deque.in");
ofstream fout("deque.out");

int d[5000001],v[5000001];

int main()
{
    int st=0,dr=-1,k,n,sum=0;
    fin>>n>>k;
    for(int i=0;i<n;i++) ///elimin din stanga elementul care face parte din secventa
    {
        fin>>v[i];
        if(st<=dr&&d[st]==i-k) st++;///eliminarea din stanga
        while(st<=dr&&v[i]<=v[d[dr]]) dr--;///adaug in dreapta
        d[++dr]=i;///prelucrez min secv curente
        if(i>=k-1) sum+=v[d[st]];
    }
    fout<<sum;
    return 0;
}