Cod sursa(job #47206)

Utilizator cimiCristina Stancu-Mara cimi Data 3 aprilie 2007 14:05:00
Problema Buline Scor 0
Compilator fpc Status done
Runda Arhiva de probleme Marime 1.27 kb
const
  infinit=20000000;
  lim=200000;
var
  a:array[1..lim] of longint;
  i,j,n,total,lmax,lmin,lx,ln,catmax,undemax,catmin,undemin,max,pmax,min,pmin:longint;
begin
  assign(input,'buline.in');
  reset(input);
  readln(n);
  read(a[1],j);
  if j=0 then a[1]:=-a[1];
  total:=a[1];
  max:=-infinit; catmax:=a[i]; undemax:=1;
  min:=infinit; catmin:=a[i];  undemin:=1;
  for i:=2 to n do
  begin
    read(a[i],j);
    if j=0 then a[i]:=-a[i];
    total:=total+a[i];
    if catmax>0
      then
      begin
        catmax:=catmax+a[i];
        inc(lx);
      end
      else
      begin
        catmax:=a[i];
        undemax:=i;
        lx:=1;
      end;
    if catmax>max then
    begin
      max:=catmax;
      pmax:=undemax;
      lmax:=lx;
    end;
    if catmin<0
      then
      begin
        catmin:=catmin+a[i];
        inc(ln);
      end
      else
      begin
        catmin:=a[i];
        undemin:=i;
        ln:=1;
      end;
    if catmin<min then
    begin
      min:=catmin;
      pmin:=undemin;
      lmin:=ln;
    end;
  end;
  close(input);
  assign(output,'buline.out');
  rewrite(output);
  if max>total-min
    then writeln(max,' ',pmax,' ',lmax)
    else writeln(total-min,' ',pmin+1,' ',n-lmin);
  close(output);
end.