Cod sursa(job #3004310)

Utilizator not_anduAndu Scheusan not_andu Data 16 martie 2023 11:29:37
Problema Deque Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.84 kb
#include <fstream>
#include <deque>

using namespace std;

#define INFILE "deque.in"
#define OUTFILE "deque.out"
#define cin fin
#define cout fout
#define ll long long
#define endl '\n'
#define F first
#define S second

ifstream fin (INFILE);
ofstream fout (OUTFILE);

int n, k, aux;
pair<int, int> auxiliar;
deque< pair<int, int> > dq;

void solve(){

    cin>>n>>k;
	ll x;
	for(int i=1;i<=k;i++){
		cin>>x;
		while(dq.size()&&x<=dq.back().F)dq.pop_back();
        auxiliar.first = x;
        auxiliar.second = i;
		dq.push_back(auxiliar);
	}
	ll sum=dq.front().F;
	for(int i=k+1;i<=n;i++){
		if(i-k>=dq.front().S)dq.pop_front();
		cin>>x;
		while(dq.size()&&x<=dq.back().F)dq.pop_back();
        auxiliar.first = x;
        auxiliar.second = i;
		dq.push_back(auxiliar);
		sum+=dq.front().F;
	}
	cout<<sum<<endl;

}

int main(){
    solve();
    return 0;
}