Pagini recente » Cod sursa (job #3273960) | Cod sursa (job #2164923) | Cod sursa (job #1307316) | Cod sursa (job #292294) | Cod sursa (job #1335594)
#include <cstdio>
#define maxn 500010
int N, K;
int A[maxn], Deque[maxn];
int Front, Back;
int b,e,mx;
int main()
{
freopen("secventa.in", "r", stdin);
freopen("secventa.out", "w", stdout);
int i;
scanf("%d%d",&N,&K);
for(i=1;i<=N;i++)scanf("%d",&A[i]);
Front = 1, Back = 0;
for (i = 1; i <= N; i++)
{
while (Front <= Back && A[i] <= A[ Deque[Back] ]) Back--;
Deque[++Back] = i;
if (Deque[Front] == i-K) Front++;
if (i >= K)
{
if(A[ Deque[Front] ] > mx)
{
mx=A[ Deque[Front] ];
b=i-K+1;
e=i;
}
}
}
printf("%d %d %d",b,e,mx);
return 0;
}