Cod sursa(job #2888054)

Utilizator mirceaspPetcu Mircea mirceasp Data 10 aprilie 2022 17:04:31
Problema Deque Scor 20
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.94 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;
    pair<long long,long long > d[n+1];
    long long suma = 0;
    long long spate = 0;
    long long fata = 0;
    unsigned long long size = 0;
    unsigned int nr = 0;
    for(i = 1;i<=n;i++)
    {
        f>>x;
        while (size > 0 && x<=d[spate].first)
        {
            spate--;
            size --;
        }
        if(nr == 0) {
            d[spate].first = x;
            d[spate].second = i;
            nr = 1;
            size ++;
        }
        else {
            spate++;
            d[spate].first = x;
            d[spate].second = i;
            size ++;
        }
        if(d[fata].second==i-k)
            fata++;

        if(i>=k)
            suma += d[fata].first;


    }
    g<<suma;
    f.close();g.close();
    return 0;
}