Cod sursa(job #526108)
//Secventa
#include <fstream>
#define MAXN 500050
using namespace std;
int n,k,a[MAXN],deque[MAXN];
long long suma;
int main()
{
int i,front,back,max1,start,finish;
ifstream f("secventa.in");
ofstream g("secventa.out");
f>>n>>k;
for(i=1;i<=n;i++)
f>>a[i];
front=1,back=0; //deque vid initial
max1=0,start=0,finish=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]]>max1)
{
max1=a[deque[front]];
start=deque[front];
finish=deque[back];
}
}
g<<start<<" "<<finish<<" "<<max1<<"\n";
f.close();
g.close();
return 0;
}