Cod sursa(job #357402)

Utilizator eudanipEugenie Daniel Posdarascu eudanip Data 19 octombrie 2009 10:39:19
Problema Secventa Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.79 kb
#include<stdio.h>
long j,i,x[5001],t,in,sf,sec,k,n,poz,u;
int a[5001],v[5001],max=-2000000000,semn,nr;
char s[5001];
int main ()
{
freopen("secventa.in","r",stdin);
freopen("secventa.out","w",stdout);
scanf("%ld%ld\n",&n,&k);
gets(s+1);
semn=1;
for(i=1;s[i];i++)
{
if(s[i]==' ')
 {
     continue;
   a[++u]=nr*semn;
   semn=1;
 }
 if(s[i]=='-')
 {
     semn=-1;
     continue;
 }
if(s[i]>='0' && s[i]<='9')
  nr=nr*10+(s[i]-'0');


}
in=1;
sf=0;
sec=0;
for(i=1;i<=n;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=i;
	}
   }

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