Cod sursa(job #2232511)

Utilizator VladAdrianaVlad Adriana VladAdriana Data 19 august 2018 19:49:01
Problema Deque Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.92 kb
#include <fstream>
#include <algorithm>
using namespace std;
ifstream fin("deque.in");
ofstream fout("deque.out");
int n,k,Front,Back,Deque[5000005],i,j,a[5000005],mini;
long long s;
int main()
{
    fin>>n>>k;
    Front=0; Back=1;
    for(i=1;i<k;i++)
        {
            fin>>a[i];
            while (Front>=Back && a[i] <= a[Deque[Front]]) Front--;
            Deque[++Front]=i;
        }
    for(;i<=n;i++)
    {
        fin>>a[i];
        while (Front>=Back && a[i] <= a[Deque[Front]]) Front--;
        Deque[++Front]=i;
        if(Deque[Back] == i-k) Back++;
        s+=a[Deque[Back]];
        /*mini=Deque[Back];
        for(j=Back+1;j<Front;j++) mini=min(mini,Deque[j]);
        if(a[i]<Deque[Front]) Deque[Front]=a[i];
        else Deque[++Front]=a[i];
        mini=min(mini,Deque[Front]);
        s+=mini;
        if(Deque[Back]==a[i-k+1]) Back++;
        */
    }
    fout<<s;
    return 0;
}