Pagini recente » Cod sursa (job #1448932) | Cod sursa (job #2482099) | Cod sursa (job #2477320) | Cod sursa (job #2495474) | Cod sursa (job #164630)
Cod sursa(job #164630)
#include <stdio.h>
#define N 500000
#define INF 1000000
int v[N],q[N];
int n,k,st=1,dr=0,rez=-INF,poz;
void scan()
{
freopen("secventa.in", "r",stdin);
freopen("secventa.out", "w",stdout);
scanf("%d%d", &n,&k);
for(int i=1;i<=n;++i)
scanf("%d", &v[i]);
}
void solve()
{
for(int i=1;i<=k-1;++i)
{
while(dr>=st && v[i]<=v[q[dr]] )
--dr;
++dr;
q[dr]=i;
}
for(int i=k;i<=n;++i)
{
while(st<=dr && v[i]<=v[q[dr]])
--dr;
++dr;
q[dr]=i;
while(st<=dr && q[st]<i-k+1)
++st;
if(v[q[st]]>rez)
{
rez=v[q[st]];
poz=i;
}
}
printf("%d %d %d\n",poz-k+1,poz,rez);
}
int main()
{
scan();
solve();
return 0;
}