Cod sursa(job #820208)
#include <fstream>
#include <sstream>
using namespace std;
struct nr
{
int val, poz;
}c[5000001];
int main()
{
ifstream in("secventa.in"); ofstream out("secventa.out");
int n, k, i, x, inc=1, sf=1, start, stop;
int maxim = -30001;
string text; in>>n>>k;
in>>x; getline(in, text);
stringstream ss(text);
c[1].val = x; c[1].poz = 1;
for (i=2;i<=n;i++)
{
ss>>x;
while (x <= c[sf].val && sf >= inc) sf--;
c[++sf].val = x; c[sf].poz = i;
if (c[inc].poz + k <= i) inc++;
if (i >= k)
if (c[inc].val > maxim)
{
maxim = c[inc].val;
start = i-k+1;
stop = i;
}
}
out<<start<<" "<<stop<<" "<<maxim;
return 0;
}