Cod sursa(job #1012312)

Utilizator andreiblaj17Andrei Blaj andreiblaj17 Data 18 octombrie 2013 18:17:41
Problema Deque Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.57 kb
#include <iostream>
#include <fstream>
#include <deque>
#define nmax 5000001

using namespace std;

long long s=0;
deque <int> deq;
int v[nmax],i,n,k;

int main(){
    
    ifstream in("deque.in");
    ofstream out("deque.out");
    
    in >> n >> k;
    
    for (i=1; i<=n; i++){
        
        in >> v[i];
        
        while (!deq.empty() && v[i]<=v[deq.back()]) deq.pop_back();
            
        deq.push_back(i);
        
        if (i - deq.front() >= k) deq.pop_front();
        
        if (i>=k) s+=v[deq.front()];
    }
    
    out << s;
    
    return 0;
}