Pagini recente » Cod sursa (job #1011732) | Cod sursa (job #335677) | Cod sursa (job #586963) | Cod sursa (job #2670741) | Cod sursa (job #268770)
Cod sursa(job #268770)
type refele = ^elemnt;
elemnt = record
val : longint;
nrel : integer;
besti : longint;
urm : refele;
end;
var fin,fout : text;
primu,el,ultimu,maxim : refele;
N,i,s,pi,nrel,besti1,j : longint;
procedure max(a,b : longint);
begin
if a > b then begin
el^.besti := a;
el^.nrel := ultimu^.nrel +1;
end
else begin
el^.besti := b;
el^.nrel := 1;
end;
end;
begin
assign(fin,'ssm.in');
reset(fin);
assign(fout,'ssm.out');
rewrite(fout);
read(fin,N);
primu := nil;
ultimu := nil;
for i := 1 to n do begin
new(el);
read(fin,el^.val);
el^.urm := nil;
if primu = nil then begin
primu := el;
ultimu := el;
el^.besti := el^.val;
el^.nrel := 1;
end
else begin
max(ultimu^.besti + el^.val,el^.val);
ultimu^.urm := el;
ultimu := el;
end;
end;
close(fin);
el := primu;
maxim := el;
for i := 2 to n do begin
el := el^.urm;
if el^.besti > maxim^.besti then begin
maxim := el;
j := i;
end;
end;
writeln(fout,maxim^.besti,' ',j - maxim^.nrel +1,' ',j);
close(fout);
end.