Cod sursa(job #822337)
#include<fstream>
#include<deque>
#define nmax 500010
using namespace std;
ifstream f("secventa.in");
ofstream g("secventa.out");
deque <int> deq;
int i,n,k,x[nmax],s,p,u;
int main()
{
f>>n>>k;
for(i=1;i<=n;i++)
f>>x[i];
for(i=1;i<=k;i++)
{
while(!deq.empty() && x[i]<=x[deq.back()])
deq.pop_back();
deq.push_back(i);
}
s=x[deq.front()];
p=1;
u=k;
for(i=k+1;i<=n;i++)
{
while(!deq.empty() && x[i]<=x[deq.back()])
deq.pop_back();
deq.push_back(i);
if(deq.front()==i-k)
deq.pop_front();
if(x[deq.front()]>s)
{
s=x[deq.front()];
p=i-k+1;
u=i;
}
}
g<<p<<' '<<u<<' '<<s;
return 0;
}