Cod sursa(job #2791849)

Utilizator game_difficultyCalin Crangus game_difficulty Data 31 octombrie 2021 11:25:04
Problema Deque Scor 25
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.5 kb
#include <fstream>

using namespace std;
ifstream in("deque.in");
ofstream out("deque.out");
int v[5000001];
int d[5000001];
int main()
{
	int n,i,k,p,u, suma=0;;
	in>>n>>k;
	for(i=1; i<=n;i++)in>>v[i];
	p=u=1;
	d[1]=1;
	if(k==1)suma+=v[1];
	/// v[ d[p] ] < .......< v[ d[u] ]
	for( i=2; i<=n; i++){
		while( u>=p && v[d[u]]>=v[i])u--;
		if(u>=p && d[p]< i-k+1 )p++; /// am scos primul element
		/// v[i-k+1 ] ..... v[i]
		u++;
		d[u]=i;
		if(i>=k)suma+=v[d[p]];
	}
	out<<suma;
	return 0;
}