Cod sursa(job #1018306)

Utilizator tuzi92Tuzes-Katai Tamas tuzi92 Data 29 octombrie 2013 11:41:24
Problema Secventa Scor 60
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.89 kb
#include <cstdio>
#include <cstdlib>
#include <deque>

using namespace std;

#define fr(i, a, b) for(int i=a; i<b; ++i)
#define INF 30002;

int n, k, j;
int mink, maxk, pos, spos, km1;
std::deque<int> d = std::deque<int>();

int main()
{
	mink = INF;
	freopen("secventa.in", "r", stdin);
	freopen("secventa.out", "w", stdout);

	scanf("%d%d", &n, &k);
	km1 = k-1;
	fr(i, 0, k)
	{
		scanf("%d", &j);
		if (j<mink) { mink = j; pos = i; }
		d.push_back(j);
	}
	maxk = mink;
	spos = pos;

	fr(i, k, n)
	{
		scanf("%d", &j);
		--pos;
		d.pop_front();
		d.push_back(j);
		if (pos >= 0)
		{
			if (j<mink) { mink = j; pos = km1; }
		}
		else
		{
			mink = INF;
			fr(l, 0, k)
			{
				if (d[l]<mink)
				{ 
					mink = d[l];
					pos = l;
				}
			}
		}	
		if (mink>maxk) { maxk = mink; spos = i; }
	}

	printf("%d %d %d", spos-k+2, spos+1, maxk);

	return 0;
}