Cod sursa(job #168088)

Utilizator AndreiDDiaconeasa Andrei AndreiD Data 30 martie 2008 18:30:33
Problema Multiplu Scor 0
Compilator fpc Status done
Runda Arhiva de probleme Marime 1 kb
Var f,g:text;
r1,u,p,m,a,b,i,l,q:longint;
x,y,r:array[0..2000002] of longint;
z:array[0..2000002] of boolean;
function cmmdc(a,b : longint):longint;
var c:longint;
begin
  while b<>0 do
  begin
    c:=a mod b;
    a:=b;
    b:=c;
  end;
  cmmdc:=a;
end;
begin
assign(f,'multiplu.in');reset(f);
assign(g,'multiplu.out');rewrite(g);
readln(f,a,b);
m:=(a*b) div cmmdc(a,b);
r[1]:=1;
x[1]:=1;
y[1]:=1;
p:=1;
u:=1;
while p<=u do begin
      if z[(r[p]*10) mod m]=true then begin
      inc(u);
      r[u]:=(r[p]*10) mod m;
      x[u]:=0;
      y[u]:=p;
      z[r[u]]:=true;
      if r[u]=0 then break;
      end;
      if z[(r[p]*10+1) mod m]=true then begin
      inc(u);
      r[u]:=(r[p]*10+1) mod m;
      x[u]:=1;
      y[u]:=p;
      z[r[u]]:=true;
      if r[u]=0 then break;
  end;
  inc(p);
  end;
while u<>y[u] do begin
  inc(r[0]);
  r[r[0]]:=x[u];
  u:=y[u];
end;
inc(r[0]);
r[r[0]]:=1;
for i:=r[0] downto 1 do
        write(g,r[i]);
close(f);
close(g);
end.