Cod sursa(job #1442529)

Utilizator MciprianMMciprianM MciprianM Data 25 mai 2015 19:12:46
Problema Deque Scor 60
Compilator cpp Status done
Runda Arhiva educationala Marime 0.67 kb
#include <fstream>
#include <queue>
#include <vector>
#include <functional>

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;
	int mink = 0x3F3F3F3F;
	priority_queue<pair<int, int>, vector<pair<int, int> >, greater<pair<int, int> > > q;
	for(int i = 0; i < n; i++)
	{
		q.push(pair<int, int>(v[i], i));
		if(i >= k - 1)
		{
			while(!q.empty() && q.top().second < i - k + 1)
			{
				q.pop();
			}
			sum += q.top().first;
		}
	}
	ofstream g("deque.out");
	g << sum << '\n';
	return 0;
}