Cod sursa(job #330501)

Utilizator madflameAdrian Toncean madflame Data 10 iulie 2009 11:51:38
Problema Buline Scor 20
Compilator fpc Status done
Runda Arhiva de probleme Marime 1.11 kb
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.