Pagini recente » Cod sursa (job #1676309) | Cod sursa (job #589923) | Cod sursa (job #913354) | Cod sursa (job #1327608) | Cod sursa (job #330501)
Cod sursa(job #330501)
Program Buline;
Var
a: array[1..200000] of Integer;
i, n, s, sm, p, pm, c: LongInt;
w: Integer;
f: Text;
BEGIN
Assign(f,'buline.in'); Reset(f);
Read(f,n);
For i:=1 to n do Begin Read(f,a[i],w); If w = 0 then a[i]:=-a[i]; End;
Close(f);
{ For i:=1 to n do Write(a[i]:2,' ');}
s:=0; sm:=0; p:=1; {lungimea sumei cateodata depaseste numarul de elemente}
For i:=1 to n do
Begin
Inc(s,a[i]);
If s <= 0 then Begin s:=0; p:=Succ(i); End
Else
Begin
If s > sm then
Begin
sm:=s;
pm:=p;
End;
End;
End;
For i:=1 to pm-1 do
Begin
Inc(s,a[i]);
If s <= 0 then Begin s:=0; p:=Succ(i); End
Else
Begin
If s > sm then
Begin
sm:=s;
pm:=p;
End;
End;
End;
{ WriteLn(#10#13,'suma maxima ',sm,#10#13,'pm: ',pm);}
i:=pm;
s:=0;
c:=0;
While (s < sm) and (i<=n) do
Begin
Inc(s,a[i]);
Inc(i); Inc(c);
End;
i:=1;
While s < sm do
Begin
Inc(s,a[i]);
Inc(i); Inc(c);
End;
Assign(f,'buline.out'); ReWrite(f);
WriteLn(f,sm,' ',pm,' ',c);
Close(f);
END.