Cod sursa(job #2889217)

Utilizator miruna_georgescuMiruna Georgescu miruna_georgescu Data 12 aprilie 2022 14:24:06
Problema Deque Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.7 kb
#include <fstream>
using namespace std; 

ifstream fin("deque.in"); 
ofstream fout("deque.out"); 

int valori[5000001], deque[5000001];

int main()
{
    int nrValori, lungimeK; 
    fin >> nrValori >> lungimeK; 

    for (int i = 1; i <= nrValori; i++)
        fin >> valori[i]; 

    long long suma = 0;
    int inc = 1, sf = 0;
    for (int i = 1; i <= nrValori; i++)
    {
        while (inc <= sf && valori[i] <= valori[deque[sf]])
            sf--;
        sf++; deque[sf] = i; 
        
        if (i >= lungimeK)
        {
            suma += valori[deque[inc]];
            if ( deque[inc] == i - lungimeK + 1)
                inc++;
        }
    }

    fout << suma;
    

}