Cod sursa(job #1442527)

Utilizator MciprianMMciprianM MciprianM Data 25 mai 2015 19:07:17
Problema Deque Scor 30
Compilator cpp Status done
Runda Arhiva educationala Marime 0.71 kb
#include <fstream>
#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;
	int lim = n - k + 1;
	int mink = 0x3F3F3F3F;
	int poz = -1;
	for(int i = 0; i < lim; i++)
	{
		if(poz < i)
		{
			mink = 0x3F3F3F3F;
			for(int j = i; j - i < k; j++)
			{
				if(mink >= v[j]) //equal helps for speed
				{
					mink = v[j];
					poz = j;
				}
			}
		}
		else if(mink >= v[i + k - 1])
		{
			mink = v[i + k - 1];
			poz = i + k - 1;
		}
		sum += mink;
	}
	ofstream g("deque.out");
	g << sum << '\n';
	return 0;
}