Cod sursa(job #2382347)

Utilizator PaterucAPetruc Andrei Stefan PaterucA Data 18 martie 2019 10:26:36
Problema Deque Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.78 kb
#include <bits/stdc++.h>

using namespace std;

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

int n, k;
deque<pair<int,int>> d;
long long sum;

int main()
{
    inf>>n>>k;
    for(int i=1; i<k; i++)
    {
        int x;
        inf>>x;
        if(d.empty())
            d.push_back({x,i});
        else
        {
            while(!d.empty()&&d.back().first>x)
                d.pop_back();
            d.push_back({x,i});
        }
    }
    for(int i=k; i<=n; i++)
    {
        int x;
        inf>>x;
        while(!d.empty()&&d.back().first>x)
            d.pop_back();
        d.push_back({x,i});
        while(!d.empty()&&d.front().second<=i-k)
            d.pop_front();
        sum+=d.front().first;
    }
    outf<<sum;

    return 0;
}