Pagini recente » Cod sursa (job #1573753) | Cod sursa (job #2049627) | Cod sursa (job #2660069) | Cod sursa (job #1242305) | Cod sursa (job #215741)
Cod sursa(job #215741)
var f,g:text;
n,k,i,rez,st,dr,poz,j:longint;
er:integer;
s,x:string;
a,q:array[1..500000] of longint;
b:array[0..5000000] of char;
ok:boolean;
begin
assign(f,'secventa.in');reset(f);
assign(g,'secventa.out');rewrite(g);
readln(f,n,k);
read(f,b);i:=0;b[0]:='0';j:=0;
while b[i] in (['0'..'9']+[' ']) do
begin
inc(I);
inc(j);
a[j]:=0;
ok:=false;
if b[i]='-' then begin
ok:=true;
i:=i+1;
end;
while (b[i]in ['0'..'9']) do
begin
a[j]:=a[j]*10+ord(b[i])-48;
inc(I);
end;
if ok then a[j]:=0-a[j];
end;
rez:=maxlongint*-1;
st:=1;
dr:=0;
for i:=1 to k-1 do begin
while (dr>=st) and (a[i]<=a[q[dr]]) do dr:=dr-1;
dr:=dr+1;
q[dr]:=i;
end;
for i:=k to n do begin
while (st<=dr) and (a[i]<=a[q[dr]]) do dr:=dr-1;
dr:=dr+1;
q[dr]:=i;
while (st<=dr) and (q[st]<i-k+1) do st:=st+1;
if a[q[st]]>rez then begin
rez:=a[q[st]];
poz:=i;
end;
end;
writeln(g,poz-k+1,' ',poz,' ',rez);
close(g);
end.