Cod sursa(job #26531)

Utilizator radu_voroneanuVoroneanu Radu Stefan radu_voroneanu Data 5 martie 2007 18:19:02
Problema Buline Scor 80
Compilator fpc Status done
Runda Arhiva de probleme Marime 0.89 kb
type sir=array[0..300000] of int64;
var s,a,max,poz:sir;
    min,poz2,x:int64;
    f,g:text;
    i,n:longint;
begin
 assign(f,'buline.in'); reset(f);
 assign(g,'buline.out'); rewrite(g);
 read(f,n);
 for i:=1 to n do begin
  read(f,a[i],x);
  if x=0 then a[i]:=0-a[i];
 end;
 s[0]:=0;
 for i:=1 to n do
  s[i]:=s[i-1]+a[i];
 max[1]:=s[1];
 poz[1]:=1;
 for i:=2 to n do
  if max[i-1]<s[i] then begin
   poz[i]:=i;
   max[i]:=s[i];
  end
  else begin
   max[i]:=max[i-1];
   poz[i]:=poz[i-1];
  end;
 min:=100000;
 poz2:=0;
 for i:=1 to n do
  if s[i]-max[i]<min then begin
   min:=s[i]-max[i];
   poz2:=i;
  end;
 write(g,s[n]-min,' ');
 if min>s[n] then
  writeln(g,'1 ',n)
 else
  if s[n]-max[n]=min then begin
   write(g,'1 ');
   writeln(g,n-(n-poz[n]));
  end
  else begin
   write(g,poz2+1,' ');
   writeln(g,n-(poz2-poz[poz2]));
  end;
 close(f); close(g);
end.