Cod sursa(job #1677458)

Utilizator emity03Vrabie Vladislav emity03 Data 6 aprilie 2016 16:37:23
Problema Deque Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.65 kb
#include <fstream>
#include <deque>

using namespace std;

ifstream cin("deque.in");
ofstream cout("deque.out");

int a[5000005],N,K;
long long sum;
deque <int> D;

void add(int x)
{
     while(!D.empty() && a[D.back()]>=a[x])
         D.pop_back();
     
     D.push_back(x);
     while(x-D.front()+1>K)
         D.pop_front();
}

int main(){
    cin>>N>>K;
     for(int i=1; i<=N; ++i)
     cin>>a[i];
     
     for(int i=1; i<=K; ++i)
     add(i);
     sum+=a[D.front()];
     
     for(int i=K+1; i<=N; ++i){
     add(i);
     sum+=a[D.front()];
     }
     
     cout<<sum;
     
return 0;
}