Cod sursa(job #424203)
Program secventa;
type stack=array [1..100900] of integer;
var f:text;
n,k,i,ke,ve,p1,p2:longint;
a:stack;
o,max:integer;
function min(l:longint;d:stack):integer;
var m:longint;
begin
min:=d[1];
for m:=2 to l do
if d[m]<min
then min:=d[m];
end;
procedure uj(l:longint;var d:stack);
var m:longint;
begin
for m:=1 to l do
d[m]:=d[m+1];
end;
begin
assign(f,'secventa.in');
reset(f);
read(f,n,k);
for i:=1 to k do
read(f,a[i]);
max:=min(k,a);
p1:=1;
p2:=k;
ke:=a[1];
ve:=a[k];
{}
for i:=k+1 to n do
begin
uj(k,a);
read(f,a[k]);
o:=min(k,a);
if o>max
then
begin
max:=o;
p1:=i-k+1;
p2:=i;
ke:=a[1];
ve:=a[k];
end
else
if o=max
then
if (a[1]<ke)
then
begin
max:=o;
p1:=i-k+1;
p2:=i;
ke:=a[1];
ve:=a[k];
end
else
if (a[k]<ve)
then
begin
max:=o;
p1:=i-k+1;
p2:=i;
ke:=a[1];
ve:=a[k];
end;
end;
close(f);
assign(f,'secventa.out');
rewrite(f);
write(f,p1,' ',p2,' ',max);
close(f);
end.