Pagini recente » Borderou de evaluare (job #2243316) | Cod sursa (job #2645270) | Cod sursa (job #2329338) | Cod sursa (job #368962) | Cod sursa (job #786243)
Cod sursa(job #786243)
const
tfi = 'secventa.in';
tfo = 'secventa.out';
Nmax = 500001;
vc = -1000000001 ;
type
arr1 = array[0..Nmax] of longint ;
var
fi,fo : text;
n,m,f,r,res,dau : longint ;
a,st : arr1 ;
procedure Nhap;
var
i,j,k :longint;
begin
read(fi,n,m) ;
for i := 1 to n do
read(fi,a[i]) ;
end;
procedure Init;
var
i,j,k: longint;
begin
f := 1;
r := 0;
res := vc;
end;
procedure xuly;
var
i,j,k: longint;
begin
for i := n downto 1 do
begin
while (f <= r) and (a[i] <= a[st[r]]) do dec(r);
while (f <= r) and (st[f] - i + 1 > m) do inc(f) ;
inc(r);
st[r] := i ;
if (a[st[f]] > res) and (n -i + 1 >= m) then
begin
res := a[st[f]] ;
dau := i;
end;
end;
end;
procedure inkq;
var
i,j,k: longint;
begin
write(fo,dau,' ',dau + m - 1,' ',res) ;
end;
begin
assign(fi,tfi);reset(fi);
assign(fo,tfo);rewrite(fo);
Nhap;
init;
xuly;
inkq;
close(fo);
close(fi);
end.