Cod sursa(job #302198)

Utilizator cotofanaCotofana Cristian cotofana Data 8 aprilie 2009 18:58:50
Problema Secventa Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.6 kb
#include <cstdio>
#include <deque>
#define dim 500010

using namespace std;

int n, k, v[dim];
deque<int> d;

int main()
{
	int i, min=0, x, y;
	freopen("secventa.in", "r", stdin);
	freopen("secventa.out", "w", stdout);
	scanf("%d %d\n", &n, &k);
	v[0]=-1<<30;
	for (i=1; i<=n; i++) scanf("%d ", &v[i]);
	for (i=1; i<=n; i++)
	{
		while (d.size() && v[i]<=v[d.back()]) d.pop_back();
		d.push_back(i);
		if (d.front()==i-k) d.pop_front();
		if (i>=k)
		{
			if (v[d.front()]>v[min])
			{
				min=d.front();
				x=i-k+1;
				y=i;
			}
		}
	}
	printf("%d %d %d\n", x, y, v[min]);
}