Cod sursa(job #2352653)

Utilizator rares22iunieDoroftei Rares rares22iunie Data 23 februarie 2019 15:46:57
Problema Deque Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.69 kb
#include <iostream>
#include <cstdio>
#include <deque>
using namespace std;
deque <int> a;
deque <int> b;
long long sum;
int i,n,k,nr;
int main()
{
    freopen("deque.in","r",stdin);
    freopen("deque.out","w",stdout);
    scanf("%d %d",&n,&k);
    for(i=1;i<=n;i++)
    {
        scanf("%d",&nr);
        while(!a.empty() && b.front()<=i-k)
        {
            a.pop_front();
            b.pop_front();
        }
        while(!a.empty() && a.back()>=nr)
        {
            a.pop_back();
            b.pop_back();
        }
        a.push_back(nr);
        b.push_back(i);
        if(i>=k)
            sum=sum+a.front();
    }
    printf("%lld",sum);
    return 0;
}