Cod sursa(job #135352)

Utilizator antoanelaAntoanela Siminiuc antoanela Data 13 februarie 2008 17:28:56
Problema Plus Scor 25
Compilator fpc Status done
Runda Arhiva de probleme Marime 1.06 kb
program plus;
var f,g:Text;
    a,b,i,t1,t2,t3,s:longint;
    n{,t1,t2,t3,s}:int64;
begin
assign(f,'plus.in');
assign(g,'plus.out');
reset(f);
rewrite(g);
read(f,s);
for i:=1 to 3 do
  begin
    read(f,a,b);
    if (b=0)then t1:=t1+a else
    if (b=1)then t2:=t2+a else
    if (b=-1)then t3:=t3+a;
  end;
if (s<>0)then n:=0 else n:=1;
if (t2=0)and(s=0)then n:=1+t1 else
if (t3=0)and(s=0)then n:=1+t1 else
if (t2<s)and(s>0)then n:=0 else
if (t3<0-s)and(s<0)then n:=0 else
begin
  if (s=0)then
    begin
      if (t2>t3)then n:=n+t3 else n:=n+t2;
    end else
  if (s<0)then
    begin
      s:=0-s;
      if (t3<s)then n:=0 else
      if (t3>=s)and(t3-s<t2)then n:=1+(t3-s) else
      if (t3>=s)and(t3-s=t2)then n:=t3-s+1 else
      if (t3>=s)and(t3-s>t2)then n:=1+t2;
    end else
  if (s>0)then
    begin
      if (t2<s)then n:=0 else
      if (t2>=s)and(t2-s<t3)then n:=1+(t2-s) else
      if (t2>=s)and(t2-s=t3)then n:=t2-s+1 else
      if (t2>=s)and(t2-s>t3)then n:=1+t3;
    end;
  n:=n*(t1+1);
end;
write(g,n);
close(f);
close(g);
end.