Cod sursa(job #356048)

Utilizator eudanipEugenie Daniel Posdarascu eudanip Data 13 octombrie 2009 12:52:44
Problema Secventa Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.58 kb
#include<stdio.h>
//#include <deque>

//using namespace std;

long j,i,x[500001],t,in,sf,sec,k,n,poz;
int a[500001],v[500001],max=-30001;

int main ()
{
	freopen("secventa.in","r",stdin);
	freopen("secventa.out","w",stdout);
	scanf("%ld%ld",&n,&k);
	in=1;
	sf=0;
	sec=0;
	for(i=1;i<=n;i++)
	{
	  scanf("%d",&a[i]);
	if(i-k + 1 > x[in])
	   in++;
		

	   if(i>=k)
	   {
	   while(in<=sf && v[sf]>a[i])
	   {
		 sf--;

	   }
	   }
	   sf++;
		v[sf]=a[i];
		x[sf]=i;

	 if(v[in]>max)
	   {
		if(i>=k)
		{ max=v[in];
		  poz=x[i];
		}
	   }

	}
	printf("%ld %ld %d",poz-k+1,poz,max);
	return 0;
}