Cod sursa(job #2729873)

Utilizator Dennis_SoareDennis Soare Dennis_Soare Data 25 martie 2021 15:27:36
Problema Deque Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.55 kb
#include <iostream>
#include <fstream>

using namespace std;

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

const int nmax = 5000001;
int n, k;
int A[nmax], Deque[nmax];
int primul = 1, ultimul = 0;
long long Sum;

int main()
{
	int i;
	in>>n>>k;
	for (i = 1; i <= n; i++)
		in>>A[i];
	for (i = 1; i <= n; i++)
	{
		while (primul <= ultimul && A[i] <= A[ Deque[ultimul] ])
            ultimul--;
		Deque[++ultimul] = i;
		if (Deque[primul] == i-k) primul++;
		if (i >= k) Sum += A[ Deque[primul]];
	}
	out<<Sum;
	return 0;
}