Cod sursa(job #552092)
#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;
for(i=0;i<N;i++)
{
while(d.size()&&v[d.back()]>=v[i]) d.pop_back();
d.push_back(i);
if(d.front()+K==i) d.pop_front();
if(i>=K-1)
if(maxim<v[d.front()])
{
maxim=v[d.front()];
start=i+1;
}
}
out<<start-K+1<<" "<<start<<" "<<maxim<<"\n";
return 0;
}