| ||||||||||
| Online Judge | Problem Set | Authors | Online Contests | User | ||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest | |||||||||
1426 pascal 答案var
n:longint;
f:array[0..300] of longint;
q:array[0..100000] of longint;
procedure exo(king:longint);
begin
if f[king]=0 then
begin
write(1); exit;
end;
exo(f[king]);
if f[king]*10 mod n=king then write(0) else write(1);
end;
procedure bfs();
var i,king,s,r,l:longint;
begin
fillchar(f,sizeof(f),255); f[1]:=0;
l:=0; r:=1; q[r]:=1;
while l<r do
begin
inc(l); s:=q[l];
for i:=0 to 1 do
begin
king:=(s*10+i) mod n;
if f[king]>=0 then continue;
f[king]:=s;
if king=0 then exit;
inc(r); q[r]:=king;
end;
end;
end;
begin
// assign(input,'multi.in'); reset(input);
// assign(output,'multi.out'); rewrite(output);
readln(n);
while n>0 do
begin
if n=1 then writeln(1)
else begin
bfs(); exo(0); writeln;
end;
readln(n);
end;
//close(input); close(output);
end.
Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator