Cod sursa(job #2887725)

Utilizator mirceaspPetcu Mircea mirceasp Data 10 aprilie 2022 03:57:11
Problema Deque Scor 60
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.92 kb
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("deque.in");
ofstream g("deque.out");
int main() {
    long long n,k,i,x;
    f>>n>>k;
    i = 0;
    long long *v = new long long [n+1];
    long long *d = new long long [n+1];
    long long suma = 0;
    while (f>>x)
    {
        v[i] = x;
        i++;
    }
    long long spate = 0;
    long long fata = 0;
    long long size = 0;
    int nr = 0;
    for(i = 0;i<n;i++)
    {
        while (size > 0 && v[i]<=v[d[spate]])
        {
            spate--;
            size --;
        }
        if(nr == 0) {
            d[spate] = i;
            nr = 1;
        }
        else
        d[++spate] = i;

            if(i>=k-1)
            suma += v[d[fata]];
        if(d[fata]==i-k+1)
            fata++;


        size = spate - fata+1;
    }

    g<<suma;
    delete[] d;delete[] v;
    f.close();g.close();
    return 0;
}