Cod sursa(job #1576472)

Utilizator Alex.PAlexandru Pacurar Alex.P Data 22 ianuarie 2016 15:02:33
Problema Deque Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.99 kb
#include <stdlib.h>
#include <stdio.h>
#include <deque>

using namespace std;

deque<int> d;
deque<int> p;

int main()
{
    FILE *fin, *fout;
    int n,k,x,poz,i,s;
    fin=fopen("deque.in","r");
    fout=fopen("deque.out","w");
    fscanf(fin,"%d%d",&n,&k);
    fscanf(fin,"%d",&x);
    d.push_back(x);
    p.push_back(0);
    for(i=1;i<k;i++){
        fscanf(fin,"%d",&x);
        while(d.empty()==0 && d.back()>x){
            d.pop_back();
            p.pop_back();
        }
        d.push_back(x);
        p.push_back(i);
    }
    s=0;
    for(i;i<n;i++){
        if(p.front()==i-k){
            s+=d.front();
            d.pop_front();
            p.pop_front();
        }
        fscanf(fin,"%d",&x);
        while(d.empty()==0 && d.back()>x){
            d.pop_back();
            p.pop_back();
        }
        d.push_back(x);
        p.push_back(i);
    }
    s+=d.front();
    fprintf(fout,"%d",s);
    fclose(fin);
    fclose(fout);
    return 0;
}