Pagini recente » Cod sursa (job #491964) | Cod sursa (job #673131) | Cod sursa (job #1492818) | Cod sursa (job #1151419) | Cod sursa (job #612171)
Cod sursa(job #612171)
#include<stdio.h>
int a[500100],deq[500100];
int main()
{
freopen("secventa.in","r",stdin);
freopen("secventa.out","w",stdout);
int n,k,i,st=1,dr=0,x,y,max=-2000000;
scanf("%d%d",&n,&k);
for(i=1;i<=n;i++)
{
scanf("%d",&a[i]);
if(i<k)
{
deq[++dr]=i;
while(dr>st && a[i]<a[deq[dr-1]])
{
deq[dr]=0;
dr--;
deq[dr]=i;
}
}
}
for(i=k;i<=n;i++)
{
while(deq[st]<i-k+1 && st<=dr)
st++;
deq[++dr]=i;
while(dr>st && a[i]<a[deq[dr-1]])
{
deq[dr]=0;
dr--;
deq[dr]=i;
}
if(a[deq[st]]>max)
{
max=a[deq[st]];
x=i-k+1;
y=i;
}
}
printf("%d %d %d",x,y,max);
return 0;
}