Cod sursa(job #775959)

Utilizator cameleonGeorgescu Dan cameleon Data 9 august 2012 14:18:09
Problema Deque Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.65 kb
#include<fstream>
#include<deque>
using namespace std;
#define NMAX 5000005

ifstream f("deque.in");
ofstream g("deque.out");
 
int a[NMAX],n,k;
deque<int> dq;
long long sum;
int main()
{
	f>>n>>k>>a[1];
	dq.push_back(a[1]);
	for(int i=2;i<=k;++i)
	{
		f>>a[i];
		while(!dq.empty() && dq.back()>a[i])
			dq.pop_back();
		dq.push_back(a[i]);
	}
	sum+=dq.front();
	
	for(int i=k+1;i<=n;++i)
	{
		f>>a[i];
		if(a[i-k]==dq.front())dq.pop_front();
		if(dq.empty())
			dq.push_back(a[i]);
		else
		{
			while(!dq.empty() && dq.back()>a[i])
				dq.pop_back();
			dq.push_back(a[i]);
			sum+=dq.front();
		}
	}
	g<<sum<<'\n';
	return 0;
}