Cod sursa(job #552039)
#include <fstream>
#include <deque>
using namespace std;
int i,N,K,maxim,start;
int v[500001];
deque <int> d;
int main()
{
ifstream in("secventa.in");
ofstream out("secventa.out");
in>>N>>K;
for(i=0;i<N;i++) in>>v[i];
maxim=-2000000000;
start=0;
d.push_back(0);
for(i=1;i<N;i++)
{
if(d.front()+K==i) d.pop_front();
while(d.size()&&v[d.back()]>v[i]) d.pop_back();
d.push_back(i);
if(i>=K)
if(maxim<v[d.front()])
{
maxim=v[d.front()];
start=d.front()+1;
}
}
out<<start<<' '<<start+K-1<<' '<<maxim<<'\n';
return 0;
}