Pagini recente » Cod sursa (job #2288618) | Cod sursa (job #341245) | Cod sursa (job #1998376) | Cod sursa (job #1815366) | Cod sursa (job #357506)
Cod sursa(job #357506)
#include<stdio.h>
#include<stdlib.h>
long j,i,x[500001],t,in,sf,sec,k,n,poz,u;
int a[500001],v[500001],max=-31000,semn,nr;
char s[500001];
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]==' ')
{
a[++u]=nr*semn;
semn=1;
continue;
}
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;
}