Pagini recente » Cod sursa (job #2131349) | Cod sursa (job #2611403) | Cod sursa (job #3300563) | Cod sursa (job #2241896) | Cod sursa (job #423593)
Cod sursa(job #423593)
Program secventa;
type stack=array [1..100000] of integer;
var f:text;
c:array [1..3] of longint;
n,k,i:word;
a,b,v:stack;
o,max:integer;
function min(j,l:word;d:stack):integer;
var m:word;
begin
min:=d[1];
for m:=2 to l do
if d[m]<min
then min:=d[m];
end;
procedure uj(j,l:word;var d:stack;p:stack);
var m:word;
begin
for m:=1 to l do
d[m]:=d[m+1];
d[l]:=p[j];
end;
begin
assign(f,'secventa.in');
reset(f);
read(f,n,k);
for i:=1 to n do
read(f,a[i]);
close(f);
assign(f,'secventa.out');
rewrite(f);
for i:=1 to k do
b[i]:=a[i];
max:=min(1,k,b);
v:=b;
c[1]:=1;
c[2]:=k;
c[3]:=max;
i:=k+1;
while (i<=n) do
begin
uj(i,k,b,a);
o:=min(1,k,b);
if o>max
then
begin
max:=o;
c[1]:=i-k+1;
c[2]:=i;
c[3]:=o;
v:=b;
end
else
if (o=max) and (b[1]<v[1])
then
begin
c[1]:=i-k+1;
c[2]:=i;
c[3]:=o;
end
else
if (o=max) and (b[1]=v[1]) and (b[k]<v[k])
then
begin
c[1]:=i-k+1;
c[2]:=i;
c[3]:=o;
end;
i:=i+1;
end;
for i:=1 to k do
write(c[i],' ');
close(f);
end.