Cod sursa(job #2205479)

Utilizator DragosArseneDragos Arsene DragosArsene Data 19 mai 2018 11:44:58
Problema Deque Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.88 kb
#include <iostream>
#include <stdio.h>
#include <deque>
using namespace std;
struct elem{int val, poz;};
deque <elem> d;
int main() {
    FILE *fin, *fout;

    elem x;
    int n, i, y, k, l, lgth, lg;
    long long sum=0;

fin = fopen("deque.in", "r");
fout = fopen("deque.out", "w");

fscanf(fin,"%d%d", &n, &k);


for(i=1;i<=n;i++){
    fscanf(fin,"%d", &l);
    x.val=l;
    x.poz=i;
    if(i<=k)
    {
        while(!d.empty()&&d.back().val>x.val)
            d.pop_back();
        d.push_back(x);
        if(i==k)
        sum=d.front().val;
    }
    else
    {
        while(!d.empty()&&d.front().poz<i-k+1)
            d.pop_front();
        while(!d.empty()&&d.back().val>x.val)
            d.pop_back();
        d.push_back(x);
        sum+=d.front().val;

    }
}
fprintf(fout,"%lld", sum);

fclose(fin);
fclose(fout);

    return 0;
}