Cod sursa(job #2206811)

Utilizator DragosArseneDragos Arsene DragosArsene Data 23 mai 2018 20:52:03
Problema Deque Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.71 kb
#include <iostream>
#include <stdio.h>
#include <deque>
using namespace std;
struct elem{int val, poz;};
int main(){
    FILE *fin, *fout;
    int n, i, j, k, m, l, q;
    deque <elem> d;
    elem x;
    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;
    while(!d.empty()&&x.val<=d.back().val)
        d.pop_back();
    d.push_back(x);
    q=d.front().val;
    if(!d.empty()&&i-k>=0)
        sum+=d.front().val;
    if(!d.empty()&&i-d.front().poz+1>=k){
        d.pop_front();
    }

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

fclose(fin);
fclose(fout);

    return 0;
}