Cod sursa(job #2842379)

Utilizator SabailaCalinSabaila Calin SabailaCalin Data 31 ianuarie 2022 18:15:48
Problema Deque Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.8 kb
#include <iostream>
#include <fstream>
#include <deque>

using namespace std;

ifstream f ("deque.in");
ofstream g ("deque.out");

int a[5000001];

int main()
{
    deque <int> D;
    int n, k;
    f >> n >> k;
    for (int i = 1; i <= n; i++)
    {
        f >> a[i];
    }
    for (int i = 1; i <= k; i++)
    {
        while (D.empty() == false && a[i] < D.back())
        {
            D.pop_back();
        }
        D.push_back(a[i]);
    }
    long long s = D.front();
    for (int i = k + 1; i <= n; i++)
    {
        while (D.empty() == false && a[i] < D.back())
        {
            D.pop_back();
        }
        D.push_back(a[i]);
        if (D.front() == a[i - k])
        {
            D.pop_front();
        }
        s += D.front();
    }
    g << s;
}