Pagini recente » Cod sursa (job #425985) | Cod sursa (job #235188) | Cod sursa (job #2350971) | Cod sursa (job #2867364) | Cod sursa (job #1733603)
#include <cstdio>
#include <algorithm>
#include <deque>
#define MaxN 500001
using namespace std;
int N,K,v[MaxN],Max=-30001,Start,sign;
char Ch=' ';
deque <int> Q;
void r(int &n)
{
n=0;
sign=0;
while(Ch<'0'||Ch>'9')
{
if(Ch=='-')
sign=1;
Ch=fgetc(stdin);
if(Ch==EOF)
return;
}
while(Ch>='0'&&Ch<='9')
{
n=n*10+Ch-'0';
Ch=fgetc(stdin);
if(Ch==EOF)
return;
}
if(sign==1)
n=-n;
}
int main()
{
freopen("secventa.in","r",stdin);
freopen("secventa.out","w",stdout);
scanf("%d%d",&N,&K);
for(int i=1;i<=N;i++)
r(v[i]);
for(int i=1;i<=N;i++)
{
while(!Q.empty()&&v[Q.back()]>v[i])
Q.pop_back();
Q.push_back(i);
if(Q.front()<=i-K)
Q.pop_front();
if(i>=K&&Max<v[Q.front()])
{
Max=v[Q.front()];
Start=i-K+1;
}
}
printf("%d %d %d",Start,Start+K-1,Max);
return 0;
}