Cod sursa(job #461968)

Utilizator mihai995mihai995 mihai995 Data 9 iunie 2010 14:22:58
Problema Deque Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.5 kb
#include<fstream>
using namespace std;

int v[1<<23],dq[1<<23],n,k,st=1,dr;

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

inline void s(int x)
{
	if (st<=dr && dq[st]==x-k)
		++st;
}

void d(int x)
{
	while (st<=dr && v[x]<=v[dq[dr]])
		--dr;
	dq[++dr]=x;
}

int main()
{
	int i,x;
	long long nr=0;
	in>>n>>k;
	for (i=1;i<k;i++)
	{
		in>>x;
		v[i]=x;
		d(i);
	}
	for (;i<=n;i++)
	{
		in>>x;
		v[i]=x;
		s(i);
		d(i);
		nr+=v[dq[st]];
	}
	out<<nr<<"\n";
	return 0;
}