Cod sursa(job #356037)

Utilizator eudanipEugenie Daniel Posdarascu eudanip Data 13 octombrie 2009 12:25:27
Problema Secventa Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.52 kb
#include<stdio.h>
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++;
	t=sf;

   if(i>1)
   {
   while(v[t]>a[i])
   {
	 t--;

	if(t<in)
		 break;
   }
   }
   t++;
   sf=t;
	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;
}