Cod sursa(job #2616468)

Utilizator raresmateiuMateiu Rares-Ioan raresmateiu Data 18 mai 2020 17:30:47
Problema Deque Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.89 kb
#include <bits/stdc++.h>
#include <iostream>

using namespace std;

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

int n,k, Deque[5000000], v[5000000];


void push_back(int Deque[], int val, int &back)
{
    Deque[++back] = val;
}

void pop_back(int Deque[], int &back)
{
    back--;
}

void pop_front(int Deque[], int val, int &front)
{
    front++;
}


int main()
{
    int i, back = 0, front = 1;
    long long sum = 0;
    f>>n>>k;
    for(i = 1; i <= n; i++)
        f>>v[i];
    push_back(Deque, 1, back);
    for(i = 2; i < n; i++)
    {
        while(v[i] <= v[Deque[back]] && front <= back)
            pop_back(Deque, back);

        push_back(Deque, i, back);

        if(i >= k)
        {
            sum += v[Deque[front]];
        }

        if(i - k == Deque[front])
            pop_front(Deque, i, front);
    }

    g << sum;
    return 0;
}