Cod sursa(job #963323)

Utilizator nicnic28nichita trita nicnic28 Data 17 iunie 2013 10:04:20
Problema Deque Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.64 kb
#include<fstream>
using namespace std;
fstream in("deque.in",ios::in),out("deque.out",ios::out);

const int N=5000001;
int d[N],v[N],n,k,st=1,dr;
long long rez;

void stanga(int i){
    if(i-d[st]==k)
        st++;
}
void dreapta(int i){
    while(st<=dr && v[i]<=v[d[dr]])
        dr--;
}

int main()
{
    in>>n>>k;
    for(int i=1 ; i<=n ; i++){
        in>>v[i];
    }
    int i=1;
    for( ; i<=k ; i++){
        dreapta(i);
        d[++dr]=i;
    }
    rez+=v[d[st]];
    for( ; i<=n ; i++){
        stanga(i);
        dreapta(i);
        d[++dr]=i;
        rez+=v[d[st]];
    }
    out<<rez;
    return 0;
}