Cod sursa(job #599583)

Utilizator tibi9876Marin Tiberiu tibi9876 Data 29 iunie 2011 10:31:19
Problema Multiplu Scor 100
Compilator fpc Status done
Runda Arhiva de probleme Marime 0.81 kb
var c,v:array[0..2000000] of byte;
    a,t:array[1..2000000] of longint;
    x,y,k,p,u:longint;

function cmmdc(x,y:longint):longint;
var r:longint;
begin
while y<>0 do
begin
r:=x mod y;
x:=y;
y:=r;
end;
cmmdc:=x;
end;

procedure afisare(k:longint);
begin
if k=1 then write(1) else
begin
afisare(t[k]);
write(c[k]);
end;
end;

begin
assign(input,'multiplu.in');reset(input);
assign(output,'multiplu.out');rewrite(output);
readln(x,y);
k:=x*y div cmmdc(x,y);
p:=1;u:=1;
a[p]:=1;
v[1]:=1;
while a[u]<>0 do
begin
inc(u);
a[u]:=a[p]*10 mod k;
if v[a[u]]=1 then dec(u) else
begin
t[u]:=p;
c[u]:=0;
v[a[u]]:=1;
end;
if a[u]=0 then break;
inc(u);
a[u]:=(a[p]*10+1) mod k;
if v[a[u]]=1 then dec(u) else
begin
t[u]:=p;
c[u]:=1;
v[a[u]]:=1;
end;
inc(p);
end;
afisare(u);
end.