Cod sursa(job #3215618)

Utilizator DomnulMilandruMilandru Nicon-David DomnulMilandru Data 15 martie 2024 10:56:55
Problema Deque Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.67 kb

#include <fstream>
#include <deque>
#include <vector>
using namespace std;
ifstream cin("deque.in");
ofstream cout("deque.out");
int n,k;
deque<int> dp;
vector<int> A;
int main()
{
    cin>>n>>k;
    A.resize(n);
    for(int i=0;i<k-1;i++)
    {
        cin>>A[i];
        while(dp.size() && A[dp[dp.size()-1]]>A[i])
           dp.pop_back();
        dp.push_back(i);
    }
    long long s=0;
    for(int i=k-1;i<n;i++)
    {
        cin>>A[i];
        while(dp.size() && A[dp[dp.size()-1]]>A[i])
           dp.pop_back();
        dp.push_back(i);
        if(dp[0]<=i-k)
           dp.pop_front();
        s=s+A[dp[0]];
    }
    cout<<s;
    return 0;
}