Cod sursa(job #3144917)

Utilizator rxdgxnGantoi Radu rxdgxn Data 11 august 2023 13:18:46
Problema Deque Scor 25
Compilator c-64 Status done
Runda Arhiva educationala Marime 0.59 kb
#include <stdio.h>

int s[1000002], dq[1000002];

int main(void) {
    FILE* f = fopen("deque.in", "r");
    FILE* g = fopen("deque.out", "w");

    int n, k, front = 1, back = 0, res = 0;
    fscanf(f, "%d %d", &n, &k);

    for (int i = 1; i <= n; i++)
        fscanf(f, "%d", &s[i]);

    for (int i = 1; i <= n; i++) {
        while (front <= back && s[i] <= s[dq[back]]) back--;
        dq[++back] = i;
        if (dq[front] == i - k) front++;
        
        if (i >= k) res += s[dq[front]];
    }

    fprintf(g, "%d", res);

    fclose(f);
    fclose(g);

    return 0;
}