Cod sursa(job #1442538)

Utilizator MciprianMMciprianM MciprianM Data 25 mai 2015 19:23:55
Problema Deque Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.63 kb
#include <fstream>
#include <queue>
#include <vector>
#include <functional>
#include <deque>

using namespace std;

static const int MAXN = 5000009;
int v[MAXN];

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