Cod sursa(job #2668682)

Utilizator RaresPoinaruPoinaru-Rares-Aurel RaresPoinaru Data 5 noiembrie 2020 09:38:05
Problema Deque Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.64 kb
#include <bits/stdc++.h>
using namespace std;
ifstream fin ("deque.in");
ofstream fout ("deque.out");

int main()
{
    int n,k;
    int i;
    fin >>n>>k;
    int v[5000000];
    for (i=0;i<n;++i)
        fin >>v[i];
    long long s=0;
    deque < int >DQ;
    for (i=0;i<n;++i)
    {
        while (!DQ.empty () && v[DQ.back()]>=v[i])
        {
            DQ.pop_back ();
        }
        DQ.push_back (i);
        if (i>=k-1)
        {
            s+=v[DQ.front ()];
        }
        int fin=i-k+1;
        if (DQ.front ()==fin)
        {
            DQ.pop_front ();
        }
    }
    fout <<s;
    return 0;
}