Cod sursa(job #1411382)

Utilizator maribMarilena Bescuca marib Data 31 martie 2015 17:58:16
Problema Deque Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.79 kb
#include <fstream>
#include <deque>

using namespace std;

struct element{
    long ind;
    long nr;
};

deque <element> dq;

element temp;

long long suma;

int main()
{
    ifstream in("deque.in");
    ofstream out("deque.out");
    long n, k, x;
    in>>n>>k;
    for(long i=1; i<=n; ++i){
        in>>x;
        if(!dq.empty())
            temp=dq.back();
        while(temp.nr>x&&!dq.empty()){
            dq.pop_back();
            if(!dq.empty())
                temp=dq.back();
        }
        temp.nr=x; temp.ind=i;
        dq.push_back(temp);
        temp=dq.front();
        if(temp.ind==i-k){
            dq.pop_front();
            temp=dq.front();
        }
        if(i>=k)
            suma+=(long long)temp.nr;
    }
    out<<suma<<"\n";
    in.close();
    out.close();
    return 0;
}