Cod sursa(job #3127648)

Utilizator darius1843Darius Suditu darius1843 Data 7 mai 2023 17:29:43
Problema Deque Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.72 kb
#include <fstream>
using namespace std;

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

int v[5000001], deq[5000001];

int main()
{

    int n, k, left, right;
    long long sum = 0;

    in >> n >> k;

    for (int i = 1; i <= n; i++)
        in >> v[i];

    left = 0;
    right = 0;


    for (int i = 1; i <= n; i++) {
        
        do
            if (left <= right && v[deq[right]] >= v[i])
                right--;
        while (left <= right && v[deq[right]] >= v[i]);
        

        right = right + 1;
        deq[right] = i;

        if (deq[left] == i - k)
            left++;

        if (i >= k)
            sum = sum + v[deq[left]];
    }

    out << sum;

    return 0;
}