Cod sursa(job #2708509)

Utilizator Ioana_8Ioana Stroe Ioana_8 Data 18 februarie 2021 20:19:49
Problema Deque Scor 25
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.86 kb
#include <fstream>
#include <queue>
using namespace std;
deque <int> deq;
int v[5000005];
int main()
{
    ifstream cin("deque.in");
    ofstream cout("deque.out");
    int n,k,suma=0;
    cin>>n>>k;
    for(int i=1;i<=n;i++)
    {
        cin>>v[i];
    }
    for(int i=1;i<=k;i++)
    {
        while(!deq.empty() && v[i]<=v[deq.back()])
        {
            deq.pop_back();
        }
        deq.push_back(i);
    }
    for(int i=k+1;i<=n;i++)
    {
        ///cout<<v[deq.front()]<<" ";
        suma+=v[deq.front()];
        while(!deq.empty() && deq.front()<=i-k)
        {
            deq.pop_front();
        }
        while(!deq.empty() && v[deq.back()]>=v[i])
        {
            deq.pop_back();
        }
        deq.push_back(i);
    }
    suma+=v[deq.front()];
    ///cout<<v[deq.front()]<<'\n';
    cout<<suma;
    return 0;
}