Cod sursa(job #130142)

Utilizator mariussMarius Telespan mariuss Data 31 ianuarie 2008 13:20:01
Problema Secventa Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.59 kb
#include<stdio.h>
#define nmax 510
long int i,j,n,k,val,min=-nmax,s,inceput,sfarsit,v[nmax],w[nmax];
int main()
{
	freopen("secventa.in","r",stdin);
	freopen("secventa.out","w",stdout);

	scanf("%ld %ld",&n,&k);
	inceput=0;
	sfarsit=-1;
	for(i=1;i<=n;i++)
	{
		scanf("%ld",&val);

		while(inceput <= sfarsit && w[inceput] <= i-k)
			inceput++;
		while(inceput <= sfarsit && v[sfarsit] > val)
			sfarsit--;
		sfarsit++;
		v[sfarsit]=val;
		w[sfarsit]=i;

		if(i >= k && v[inceput]>min){
			min=v[inceput];
			s=i;
		}

	}

	printf("%ld %ld %ld",s-k+1,s,min);

	return 0;
}