Cod sursa(job #2888063)

Utilizator mirceaspPetcu Mircea mirceasp Data 10 aprilie 2022 17:15:04
Problema Deque Scor 20
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.97 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;
    long long *dp = new long long[n+1];
    long long *dv = new long long[n+1];
    long long suma = 0;
    long long spate = 0;
    long long fata = 0;
    unsigned long long size = 0;
    unsigned short nr = 0;
    for(i = 1;i<=n;i++)
    {
        f>>x;
        while (size > 0 && x<=dv[spate])
        {
            spate--;
            size --;
        }
        if(nr == 0) {
            dv[spate] = x;
            dp[spate] = i;
            nr = 1;
            size++;
        }
        else {
            spate++;
            dv[spate] = x;
            dp[spate] = i;
            size ++;
        }
        if(dp[fata]==i-k)
            fata++;

        if(i>=k)
            suma += dv[fata];


    }
    delete[] dp;delete[] dv;
    g<<suma;
    f.close();g.close();
    return 0;
}