Pagini recente » Cod sursa (job #1679640) | Cod sursa (job #1109136) | Cod sursa (job #1890798) | Cod sursa (job #353674) | Cod sursa (job #1733720)
#include <cstdio>
#include <algorithm>
#include <deque>
#define MAX 65536
#define MaxN 500001
using namespace std;
int N,K,v[MaxN],pos=0,Max=-30001,Start,sign;
char f[MAX],Ch=' ';
deque <int> Q;
void r(int &nr)
{
nr=0;
sign=0;
while(f[pos]<'0'||f[pos]>'9')
{
if(f[pos]=='-')
sign=1;
pos++;
if(pos==MAX)
fread(f,1,MAX,stdin),pos=0;
}
while(f[pos]>='0'&&f[pos]<='9')
{
nr=nr*10+f[pos++]-'0';
if(pos==MAX)
fread(f,1,MAX,stdin),pos=0;
}
if(sign==1)
nr=-nr;
}
int main()
{
freopen("secventa.in","r",stdin);
freopen("secventa.out","w",stdout);
fread(f,1,MAX,stdin);
r(N);r(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;
}