Cod sursa(job #3174779)

Utilizator Ilie_MityIlie Dumitru Ilie_Mity Data 25 noiembrie 2023 10:02:28
Problema Deque Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.63 kb
//Ilie Dumitru
#include<fstream>
#include<deque>
const int NMAX=5000005;

int N, K;
int v[NMAX];

int main()
{
	int i;
	std::deque<int> dq;
	long long suma=0;
	std::ifstream f("deque.in");
	std::ofstream g("deque.out");

	f>>N>>K;
	for(i=0;i<N;++i)
		f>>v[i];

	for(i=0;i<K;++i)
	{
		while(!dq.empty() && v[dq.back()]>=v[i])
			dq.pop_back();
		dq.push_back(i);
	}

	suma+=v[dq.front()];

	for(;i<N;++i)
	{
		if(!dq.empty() && dq.front()==i-K)
			dq.pop_front();

		while(!dq.empty() && v[dq.back()]>=v[i])
			dq.pop_back();

		dq.push_back(i);

		suma+=v[dq.front()];
	}

	g<<suma<<'\n';

	return 0;
}