Cod sursa(job #1611101)

Utilizator paul1324564Alexandru Paul paul1324564 Data 23 februarie 2016 22:32:48
Problema Deque Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.62 kb
#include <cstdio>

using namespace std;

int v[5000001];
int deq[5000001];

int main()
{
    FILE *fin = fopen("deque.in", "r");
    FILE *fout = fopen("deque.out", "w");

    long long int suma = 0;
    int n, k, fr, ba;

    fscanf(fin, "%d%d", &n, &k);
    fr = 1;
    ba = 0;
    for(int i = 1; i <= n; ++i){
        fscanf(fin, "%d", &v[i]);

        while(ba >= fr && v[i] <= v[deq[ba]])
            ba--;
        deq[++ba] = i;

        if(i >= k)
            suma += 1LL * v[deq[fr]];
        if(i - k + 1 >= deq[fr])
            fr++;
    }

    fprintf(fout, "%lld", suma);
    return 0;
}