Cod sursa(job #253082)

Utilizator silvia_the_bestSilvia Pripoae silvia_the_best Data 5 februarie 2009 13:45:16
Problema Secventa Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.66 kb
#include <cstdio>
#include <deque>
#define FIN "deque.in"
#define FOUT "deque.out"
#define N 5000007
using namespace std;
int n,k;
long long s;
int v[N];
deque <int> d;
void read()
{
	int i;
	deque <int> :: iterator it;
	freopen(FIN,"r",stdin);
	scanf("%d%d", &n, &k);
	scanf("%d", &v[1]);
	d.push_back(1);
	for (i = 2; i <= n; ++i)
	{
		scanf("%d", &v[i]);
		if (i - d.front() >= k)
			d.pop_front();
		while ( d.size() && v[i] < v[ d.back() ])
			d.pop_back();
		d.push_back(i);
		if(i>=k)
			s += v[ d.front() ]; 
	}
}
void write()
{
	freopen(FOUT,"w",stdout);
	printf("%lld \n", s);
}
int main()
{
	read();
	//solve();
	write();
}