Pagini recente » Cod sursa (job #1344063) | Cod sursa (job #1606161) | Cod sursa (job #615230) | Cod sursa (job #402386) | Cod sursa (job #169595)
Cod sursa(job #169595)
#include <cstdio>
const int nmax=500001;
int n,k,ls,ld,i,p,min,a[nmax],q[nmax],prim,ult;
int main(){
freopen("secventa.in","r",stdin);
freopen("secventa.out","w",stdout);
scanf("%d %d",&n,&k);
for (i=1;i<=n;i++) scanf("%d",&a[i]);
ls=1;ld=k;
prim=ult=1;q[1]=1;
for (i=2;i<=k;i++){
while (ult>=prim && a[q[ult]]>a[i]) ult--;
q[++ult]=i;
}
min=a[q[prim]];
for (i=k+1;i<=n;i++){
while (prim<=ult && i-q[prim]+1>k) prim++;
while (ult>=prim && a[q[ult]]>a[i]) ult--;
q[++ult]=i;
if (a[q[prim]]>min) {min=a[q[prim]];
ls=i-k+1;
ld=i;}
}
printf("%d %d %d",ls,ld,min);
return 0;
}