Pagini recente » Cod sursa (job #176668) | Cod sursa (job #372630) | Cod sursa (job #2827741) | Cod sursa (job #2503368) | Cod sursa (job #587100)
Cod sursa(job #587100)
var a:array[1..10,1..10] of char;
x:array[1..10] of byte;
i,j,n:integer;
sol:longint;
function valid(nr:integer):boolean;
var b:array[1..10] of boolean;
v:longint;
i,j:integer;
begin
valid:=true;
for i:=1 to nr do b[i]:=false;
for i:=1 to n do
begin
v:=0;
v:=v or (1 shl (x[i]-1));
for j:=1 to n do
if a[i,j]='1' then v:=v or (1 shl (x[j]-1));
if v=(1 shl (nr))-1 then b[x[i]]:=true;
end;
for i:=1 to nr do
if not b[i] then
begin
valid:=false;
exit;
end;
end;
procedure back(k,nr:integer);
var i:integer;
begin
if (k>n) and (nr>1) and valid(nr) then inc(sol);
if k>n then exit;
for i:=1 to nr do
begin
x[k]:=i;
back(k+1,nr);
end;
x[k]:=nr+1;
back(k+1,nr+1);
end;
begin
assign(input,'copii.in');reset(input);
assign(output,'copii.out');rewrite(output);
readln(n);
for i:=1 to n do
begin
for j:=1 to n do
read(a[i,j]);
readln;
end;
back(1,0);
write(sol);
end.