Pagini recente » Cod sursa (job #1851767) | Cod sursa (job #968653) | Cod sursa (job #948711) | Cod sursa (job #2626619) | Cod sursa (job #423571)
Cod sursa(job #423571)
Program secventa;
type stack=array [1..100000] of integer;
var f:text;
n,k,i:word;
a,b,c:stack;
o,max:integer;
function min(j,l:word;d:stack):integer;
var n:word;
begin
min:=d[1];
for n:=2 to l do
if d[n]<min
then min:=a[n];
end;
procedure uj(j,l:word;var d:stack;p:stack);
var n:word;
begin
for n:=1 to l do
d[n]:=d[n+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);
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;
end
else
if (o=max) and (b[1]<c[1])
then
begin
c[1]:=i-k+1;
c[2]:=i;
c[3]:=o;
end
else
if (o=max) and (b[1]=b[1]) and (b[k]<c[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(f,c[i],' ');
close(f);
end.