Pagini recente » Cod sursa (job #2260368) | Cod sursa (job #395631) | Cod sursa (job #3126545) | Cod sursa (job #1165880) | Cod sursa (job #716416)
Cod sursa(job #716416)
#include<cstdio>
using namespace std;
long x[500001];
long q[500001];
int main () {
long n,k,i,u,p,max=-1,inceput,sfarsit;
freopen("secventa.in","r",stdin);
freopen("secventa.out","w",stdout);
scanf("%ld%ld",&n,&k);
for (i=1;i<=n;i++)
scanf("%ld",&x[i]);
u=0;
p=1;
for (i=1;i<=n;i++) {
while (p<=u && x[q[u]]>=x[i])
u--;
q[++u]=i;
if (i-q[p]==k)
p++;
if (i>=k && q[u]-q[p]+1>=k)
if (max<x[q[p]]) {
max=x[q[p]];
inceput=q[p];
sfarsit=q[u];
}
}
printf("%ld %ld %ld",inceput,sfarsit,max);
return 0;
}