Cod sursa(job #158729)

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

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

	scanf("%d %d",&n,&k);
	for(i=1;i<=n;i++)
	{
		scanf("%d",&nr);
		while(in<=sf && w[in]<=i-k)
			in++;
		while(in<=sf && v[i]>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;
}