Cod sursa(job #2726396)

Utilizator GhiuzanuEdward Ghiuzan Ghiuzanu Data 20 martie 2021 20:28:03
Problema Deque Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.55 kb
#include <iostream>
#include <fstream>
using namespace std;
#define maxn 5000010

int N, K;
int A[maxn], Deque[maxn];
int Front, Back;
long long Sum;

int main()
{
	ifstream fin("deque.in");
	ofstream fout("deque.out");
	int i;
	fin>>N>>K;
	for (i = 1; i <= N; ++i)
		fin>>A[i];
	Front = 1;
	Back = 0;
	for (i = 1; i <= N; ++i)
	{
		while (Front <= Back && A[i] <= A[ Deque[Back] ])
		    Back--;
		Deque[++Back] = i;
		if (Deque[Front] == i - K)
		    Front++;
		if (i >= K)
		    Sum = Sum + A[ Deque[Front]];
	}
	fout<<Sum;
	fin.close();
	fout.close();
	return 0;
}