Pagini recente » Cod sursa (job #1329845) | Cod sursa (job #2423909) | Cod sursa (job #2242374) | Cod sursa (job #970957) | Cod sursa (job #131821)
Cod sursa(job #131821)
#include<stdio.h>
long n,i,k,max,st,sf,p1,p2;
long a[500001],q[500001],poz[500001];
int main(void)
{
freopen("secventa.in","r",stdin);
freopen("secventa.out","w",stdout);
scanf("%ld%ld",&n,&k);
for(i=1;i<=n;i++)
scanf("%ld",&a[i]);
max=-32000;
q[1]=a[1];
poz[1]=1;
st=1;
sf=1;
for(i=2;i<=n;i++)
{
while(st<=sf&&poz[st]<=i-k)
st++;
while(st<=sf&&q[sf]>=a[i])
sf--;
sf++;
q[sf]=a[i];
poz[sf]=i;
if(i>=k&&q[st]>max)
{
max=q[st];
p2=i;
p1=p2-k+1;
}
}
printf("%ld %ld %ld\n",p1,p2,max);
return 0;
}