Cod sursa(job #3316330)

Utilizator Carla_0049cacamaca Carla_0049 Data 18 octombrie 2025 13:47:48
Problema Deque Scor 60
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.81 kb
#include <bits/stdc++.h>

using namespace std;

#define int long long

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

int d[5000001];
int v[5000001];

signed main()
{
    int n,s=0,k,spate=0,prim=0;
    in >> n >> k;
    for (int i=1; i<=n; i++){
        in >> v[i];
    }
    /*for (int i=1; i<=n; i++){
        if (d.empty()){
            d.push_back(v[i]);
        } else {
            if (d.back()>v[i]){
                d.pop_back;
            }
        }
    }*/
    for (int i=1; i<=n; i++)
	{
	    ///cat mai am in deque si daca ultimu e mai mic decat noul nr
		while (prim<=spate && v[i]<=v[d[spate]]){
            spate--;
		}
		d[++spate]=i;
		if (d[prim]==i-k){
            prim++;
		}
		if (i>=k) {
            s+=v[d[prim]];
		}
	}
	out << s;
    return 0;
}