Cod sursa(job #2163610)

Utilizator Alexandru_StoianStoian Sorin Alexandru Alexandru_Stoian Data 12 martie 2018 19:07:59
Problema Deque Scor 25
Compilator cpp Status done
Runda Arhiva educationala Marime 0.8 kb
#include<iostream>
#include<fstream>
#include<deque>
#include<stdlib.h>

using namespace std;

ifstream f("deque.in");
ofstream g("deque.out");

struct elem{
    int val,poz;
};
elem x,y,t;
int n,k,s;

deque <elem> q,r;

int main(){
    f>>n>>k;
    f>>x.val;
    x.poz=1;
    q.push_back(x);
    for(int i=2; i<=n; ++i){
        f>>x.val;
        x.poz=i;
        y=q.front();
        while(abs(y.poz-x.poz) >= k){
            q.pop_front();
            if(q.empty())break;
            y=q.front();
        }
        y=q.back();
        while( (y.val>x.val)){
            q.pop_back();
            if(q.empty())break;
            y=q.back();
        }
        q.push_back(x);
        if(i>=k){
            t=q.front();
            s=s+t.val;
        }
    }
    g<<s<<'\n';
}