Cod sursa(job #847830)

Utilizator danutbodbodnariuc danut danutbod Data 4 ianuarie 2013 16:02:08
Problema Deque Scor 30
Compilator cpp Status done
Runda Arhiva educationala Marime 0.63 kb
#include <fstream>
#define  NMax 5000003
using namespace std;
ifstream f("deque.in");
ofstream g("deque.out");
int deque[NMax],a[NMax],i,n,x,k,p,u;
long long s;
int main()
{
    f>>n>>k;
    for(i=1;i<=n;i++)f>>a[i];
    p=1;u=1;deque[u]=a[1];
    for(i=2;i<=k;i++){
       while(p<=u&&deque[u]>=a[i]){deque[u]=0;u--;}
       u++;deque[u]=a[i];
    }//modif
    s+=(long long)deque[p];
    for(i=k+1;i<=n;i++){
       if(deque[p]==a[i-k]){deque[p]=0;p++;}
       while(p<=u&&deque[u]>=a[i]){deque[u]=0;u--;}
       u++;deque[u]=a[i];
       s+=(long long)deque[p];
    }
    g<<s<<'\n';
    g.close();
    return 0;
}