Cod sursa(job #551078)

Utilizator tlmgeox_13Tudor Luca tlmgeox_13 Data 10 martie 2011 12:23:49
Problema A+B Scor 100
Compilator fpc Status done
Runda Arhiva de probleme Marime 1.42 kb
uses crt;
type numar=array [1..1000] of integer;
var a,b,c:numar;
    x:char;
    i,j,nb,na,nc,r,k,s,min,max,code:integer;
    f,g:text;

begin
clrscr;
assign(f,'adunare.in');
assign(g,'adunare.out');
rewrite(g);
reset(f);
i:=1;
repeat
 read(f,x);
 if x in ['0'..'9'] then begin
                          inc(i);
                          val(x,a[i],code);
                         end;
until eoln(f);
na:=i;
i:=1;
repeat
 read(f,x);
 if x in ['0'..'9'] then begin
                          inc(i);
                          val(x,b[i],code);
                         end;
until eoln(f);
nb:=i;
{for i:=1 to na do
 write(a[i],' ');
writeln;
for i:=1 to nb do
 write(b[i],' ');}

a[1]:=0;
b[1]:=0;
r:=0;
if na>nb then
         else begin c:=a; a:=b; b:=c; i:=na; na:=nb; nb:=i; end;
k:=na;
nc:=k;
for i:=1 to k do c[i]:=0;
i:=na; j:=nb;
repeat
 s:=a[i]+b[j]+r;
 if s<=9 then begin
               c[k]:=s;
               r:=0;
              end
         else begin
               c[k]:=s-10;
               r:=1;
              end;
 dec(i);
 dec(j);
 dec(k);
until (i<=0) or (j<=0);
repeat
 s:=a[k]+r;
 if s<=9 then begin
               c[k]:=s;
               r:=0;
              end
         else begin
               c[k]:=s-10;
               r:=1;
              end;
 dec(k);
until k<1;

if c[1]=0 then k:=2
          else k:=1;
for i:=k to nc do
 write(g,c[i]);
close(g);
end.