Cod sursa(job #2541763)

Utilizator Galatanu_BogdanGalatanu Bogdan Ioan Galatanu_Bogdan Data 8 februarie 2020 20:54:51
Problema Deque Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.63 kb
#include <fstream>
#include <deque>
#include <vector>
#define NMAX 5000000
using namespace std;
ifstream cin("deque.in");
ofstream cout("deque.out");
int coada[NMAX],a[NMAX];
long long int n,k,sum ,front,back;
void citire()
{
    cin>>n>>k;

    for(int i=1;i<=n;i++)
        cin>>a[i];
        
}

int main()
{
    citire();
    front = 1;
    back = 0;
    for(int i=1;i<=n;i++)
    {
        while(front <= back && a[i] <= a[coada[back]])
            back--;
        coada[++back] = i;
        
        if(coada[front] == i-k)
            front ++;
        if(i >= k)
            sum += a[coada[front]];
    }
    
    
    cout<<sum<<'\n';
}