Pagini recente » Cod sursa (job #1437126) | Cod sursa (job #696215) | Cod sursa (job #2838649) | Cod sursa (job #2983227) | Cod sursa (job #3862)
Cod sursa(job #3862)
#include<stdio.h>
#include<values.h>
#define dim 500002
#define infinit MAXLONG-1
long n,k,i,st,dr,rez,poz,a[dim],q[dim];
int main()
{
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]);
rez=-infinit;
st=1;
dr=0;
for(i=1; i<k; ++i)
{
while(dr>=st && a[i]<=a[q[dr]])
--dr;
++dr;
q[dr]=i;
}
for(i=k; i<=n; ++i)
{
while(st<=dr && a[i]<=a[q[dr]])
--dr;
++dr;
q[dr]=i;
while(st<=dr && q[st]<i-k+1)
++st;
if(a[q[st]]>rez)
{
rez=a[q[st]];
poz=i;
}
}
printf("%ld %ld %ld", poz-k+1, poz, rez);
return 0;
}