Cod sursa(job #285667)

Utilizator andreyusschiopu andrei andreyus Data 22 martie 2009 20:23:13
Problema A+B Scor 0
Compilator fpc Status done
Runda Arhiva de probleme Marime 1.46 kb
var f,g:text;
vn1,vn2:array[1..10000] of byte;
s:array[1..10000] of byte;
i,j,k,t:byte;
n1:char;
begin
assign(f,'adunare.in');
reset(f);
i:=0;
while not eoln(f) do
begin
     read(f,n1);
     inc(i);
     vn1[i]:=ord(n1)-ord('0');
end;
readln(f);
j:=0;
while not eoln(f) do
begin
      read(f,n1);
      inc(j);
      vn2[j]:=ord(n1)-ord('0');
end;
s[1]:=(vn1[1]+vn2[1]) mod 10;
t:=(vn1[1] +vn2[1]) div 10;

if i<j then
begin
       for k:=2 to i do
       begin
              s[k]:=(t+vn1[k]+vn2[k]) mod 10;
              t:=(t +vn1[k]+vn2[k]) div 10
       end;
      for k:=i+1 to j do
      begin
           s[k]:=(t+vn2[k]) mod 10;
           t:=(t+vn2[k]) div 10;
      end;
      if t<>0 then
      begin
         inc(k);
         s[k]:=t
      end
end
else
if i>j then
 begin
    for k:=2 to j do
    begin
          s[k]:=(t+vn1[k]+vn2[k]) mod 10;
          t:=(t+vn1[k]+vn2[k]) div 10
    end;
    for k:=j+1 to i do
    begin
        s[k]:=(t+vn1[k]) mod 10;
        t:=(t+vn1[k]) div 10
    end;
      if t<>0 then
      begin
         inc(k);
         s[k]:=t
      end
 end
else
begin
    for k:=2 to j do
    begin
          s[k]:=(t+vn1[k]+vn2[k]) mod 10;
          t:=(t+vn1[k]+vn2[k]) div 10
    end;
      if t<>0 then
      begin
         inc(k);
         s[k]:=t
      end
   end;

 assign(g,'adunare.out');
 rewrite(g);
 for i:= 1 to k do
       write(g,s[i]);
 close(f);
 close(g);
end.