Cod sursa(job #1147205)

Utilizator denis_tdrdenis tdr denis_tdr Data 19 martie 2014 17:35:17
Problema Deque Scor 25
Compilator cpp Status done
Runda Arhiva educationala Marime 0.79 kb
#include<iostream>
#include <fstream>
#include <vector>
#include <list>
#define mp make_pair
#define nr first
#define pos second
using namespace std;

int n, k, x, c=0, minim=0;
long int s=0;
list<pair<int, int> > l;

int main(){
    ifstream f("deque.in");
    f>>n>>k;
    c=0;
    while(c<k)
    {
        f>>x;
        c++;
        while(l.size() && x<(--l.end())->nr)
            l.pop_back();
        l.push_back(mp(x, c));
    }
    while(f>>x){
        c++;
        s+=l.begin()->nr;
        while(l.size() && x<(--l.end())->nr)
            l.pop_back();
        l.push_back(mp(x, c));
        while(l.size() && l.begin()->pos<=c-k)
            l.pop_front();
    }
    s+=l.begin()->nr;
    //cout<<s;
    ofstream g("deque.out");
    g<<s;
    return 0;
}