Cod sursa(job #37037)

Utilizator cheery_g1rlHaller Emanuela cheery_g1rl Data 24 martie 2007 15:07:52
Problema Buline Scor 80
Compilator fpc Status done
Runda Arhiva de probleme Marime 0.93 kb
var  f,g:text;
     i,n,a,b,max,l,p:longint;
      v:array[1..200000] of -10000..10000;
      s,t:array[1..200000] of longint;
begin
assign(f,'buline.in');
reset(f);
readln(f,n);
for i:=1 to n do
   begin
     readln(f,a,b);
     if b=0 then v[i]:=0-a
       else v[i]:=a;
   end;
close(f);
s[1]:=v[1];
t[1]:=s[1];
for i:=2 to n do
   begin
     s[i]:=s[i-1]+v[i];
     if s[i]>t[i-1] then t[i]:=s[i]
       else t[i]:=t[i-1];
   end;
   max:=0;
   p:=200000;
   l:=200000;
for i:=1 to n do
   begin
     a:=t[i-1]+s[n]-s[i-1];
     if a>max then
       begin
         max:=a;
         p:=i;
       end
         else if (a=max)and(p>i) then p:=i;
    end;
assign(g,'buline.out');
rewrite(g);
write(g,max,' ',p,' ');
i:=p+1;           b:=1;
a:=v[p];
while (a<>max)and(i<>p) do
    begin
      a:=a+v[i];  inc(b);
      inc(i); if i>n then i:=1;
    end;
if a=max then  l:=b;
writeln(g,l);
close(g);
end.