Cod sursa(job #990661)

Utilizator BeilandArnoldArnold Beiland BeilandArnold Data 28 august 2013 20:37:51
Problema Deque Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.71 kb
#include <fstream>
#include <deque>
#include <utility>

typedef std::pair<unsigned,int> UUP;

int main(){
    std::ifstream fin("deque.in");
    std::ofstream fout("deque.out");

    unsigned n,k;
    fin>>n>>k;

    long long Sum=0;
    std::deque<UUP> sir;

    for(unsigned i=1;i<k;++i){
        int x; fin>>x;
        while(!sir.empty()&&sir.back().second>=x) sir.pop_back();
        sir.push_back(UUP(i,x));
    }
    for(unsigned i=1;i<=n-k+1;++i){
        int x; fin>>x;
        while(!sir.empty()&&sir.back().second>=x) sir.pop_back();
        sir.push_back(UUP(i+k-1,x));

        Sum+=sir.front().second;
        if(i==sir.front().first) sir.pop_front();
    }

    fout<<Sum<<'\n';
}