Cod sursa(job #2224227)

Utilizator LefterieAlexLefterie Alexandru Iulian LefterieAlex Data 23 iulie 2018 14:46:42
Problema Deque Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.59 kb
#include <fstream>

using namespace std;

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

const int NMAX = 5000010;

int v[NMAX], vdeque[NMAX];
int Back, Front;
long long suma;

int main()
{
    int n, k, i;
    fin>>n>>k;
    for(i=1; i<=n; i++)
        fin>>v[i];
     for (i = 1; i <= n; i++)
    {
        while (Front <= Back && v[i] <= v[ vdeque[Back] ])
            Back--;

        vdeque[++Back] = i;

        if (vdeque[Front] == i-k)
            Front++;

        if (i >= k)
            suma += v[ vdeque[Front]];
    }
    fout<<suma;
    return 0;
}