Cod sursa(job #262617)

Utilizator MihaiBunBunget Mihai MihaiBun Data 19 februarie 2009 15:12:05
Problema Multiplu Scor 20
Compilator fpc Status done
Runda Arhiva de probleme Marime 1.59 kb
program vvv;
var f:text;
    c:array[1..10000] of ansistring;
    r:array[1..20000000] of 0..1;
    x,y,a,b,m,i,n,r1,sum,j,sum1,k:longint;
    er:integer;
    gasit:boolean;
    sol,s,s1:ansistring;
begin
  assign(f,'multiplu.in');
  reset(f);
  readln(f,a,b);
  close(f);
  assign(f,'multiplu.out');
  rewrite(f);
  x:=a;
  y:=b;
  r1:=x mod y;
  while r1<>0 do
    begin
     x:=b;
     y:=r1;
     r1:=x mod y
    end;
   m:=(a div y)*b;
   i:=1;
   k:=1;
   c[1]:='1';
   r[1]:=1;
   repeat
     s:=c[k]+'0';
     sum:=0;
     for j:=1 to length(s) do
       begin
        val(s[j],x,er);
        sum:=sum*10+x;
        sum:=sum mod m
       end;
     s1:=c[k]+'1';
     sum1:=0;
     for j:=1 to length(s1) do
       begin
        val(s1[j],x,er);
        sum1:=sum1*10+x;
        sum1:=sum1 mod m
       end;
     if sum=0 then begin
                    gasit:=true;
                    sol:=s
                   end
              else if r[sum]=0 then begin
                                       r[sum]:=1;
                                       i:=i+1;
                                       c[i]:=s
                                     end;
     if sum1=0 then begin
                     gasit:=true;
                     sol:=s1
                    end
               else if r[sum1]=0 then begin
                                       r[sum1]:=1;
                                       i:=i+1;
                                       c[i]:=s1
                                     end;
     k:=k+1;
     until gasit;
   write(f,sol);
   close(f);
end.