Cod sursa(job #158765)

Utilizator mariussMarius Telespan mariuss Data 13 martie 2008 20:14:13
Problema Secventa Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.5 kb
#include<stdio.h>
#define nmax 500010
int i,j,n,k,min=-nmax,p,nr,in,sf;
short int v[nmax];
char w[nmax];

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

	scanf("%d %d",&n,&k);
	sf=-1;

	for(i=1;i<=n;i++)
	{
		scanf("%d",&nr);
		while(in<=sf && w[in]<=i-k)
			in++;
		while(in<=sf && v[sf]>nr)
			sf--;
		sf++;
		v[sf]=nr;
		w[sf]=i;
		if(i>=k && v[in]>min)
		{
			min=v[in];
			p=i;
		}
	}

	printf("%d %d %d\n",p-k+1,p,min);

    return 0;
}