Cod sursa(job #2805867)

Utilizator namesurname01Name Surname namesurname01 Data 22 noiembrie 2021 02:51:36
Problema Deque Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.69 kb
#include <stdio.h>
#include <iostream>
#include <deque>

using namespace std;
FILE* f, * g;
int v[5000009];
deque <int> q;

int main()
{
    int n, k, i, j, x, y;
    long long ss = 0;
    f = fopen("deque.in", "r");
    g = fopen("deque.out", "w");

    fscanf(f, "%d %d", &n, &k);
    for (i = 1;i <= n;++i)
        fscanf(f, "%d", &v[i]);
    for (i = 1;i <= n;++i)
    {
        while (!q.empty() && v[i] <= v[q.back()])
            q.pop_back();
        q.push_back(i);
        if (i >= k)
            ss += v[q.front()];
        if (q.front() == i - k + 1)
            q.pop_front();
    }
    fprintf(g, "%lld", ss);

    fclose(f);
    fclose(g);
    return 0;
}