Cod sursa(job #1147531)

Utilizator denis_tdrdenis tdr denis_tdr Data 19 martie 2014 21:59:01
Problema Deque Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.73 kb
#include<iostream>
#include <fstream>
#include <deque>
#define mp make_pair
#define nr first
#define pos second
using namespace std;
int n, k;
long long int s=0;
deque<int> deq;
int v[5000005];
int main(){
    ifstream f("deque.in");
    f>>n>>k;n=0;
    while(f>>v[++n]);n--;

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