Cod sursa(job #1307661)

Utilizator TudorFinaruTudor Cristian Finaru TudorFinaru Data 2 ianuarie 2015 17:29:24
Problema Deque Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.45 kb
#include<fstream>
using namespace std;
ifstream f("deque.in");
ofstream g("deque.out");
int n,k,deque[5000010],v[5000010],front,back;
long long s;
int main()
{
	f>>n>>k; int i;
	for(i=1;i<=n;i++)
		f>>v[i];
	front=1;back=0;
	for(i=1;i<=n;i++)
	{
		while(front<=back && v[i]<=v[deque[back]]) back--;
		deque[++back]=i;
		if(deque[front]==i-k) front++;
		if(i>=k) s+=v[deque[front]];
	}
	g<<s<<'\n';
	f.close();
	g.close();
	return 0;
}