Pagini recente » Cod sursa (job #126568) | Cod sursa (job #1614948) | Cod sursa (job #1648743) | Cod sursa (job #146048) | Cod sursa (job #1036483)
#include<stdio.h>
int a[14][14],v[13],st[13],n,gr[13][13],sol;
void verif()
{
if(v[1]!=n)
{
int max=0;
for(int i=1;i<=n;i++)
{
if(st[i]>max)
max=st[i];
for(int j=1;j<=n;j++)
gr[i][j]=0;
}
int i,j;
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
{
if(a[i][j]=='1')
gr[st[i]][st[j]]=1;
}
int ok=0;
for(i=1;i<=max;i++)
for(j=1;j<=max;j++)
if(i!=j && gr[i][j]==0) ok=1;
if(ok==0)
sol++;
}
}
void back(int k)
{
if(k==n+1)
verif();
else
{
for(int i=1;i<=n;i++)
{
int ok=0;
for(int j=1;j<i;j++)
{
if(v[j]==0)
ok=1;
}
if(ok==0){
st[k]=i;
v[i]++;
back(k+1);
v[i]--;
}
}
}
}
char cg;
int main()
{
freopen("copii.in","r",stdin);
freopen("copii.out","w",stdout);
scanf("%d ",&n);
int i,j;
for(i=1;i<=n;i++)
{
for(j=1;j<=n;j++)
scanf("%c",&a[i][j]);
scanf("%c",&cg);
}
back(1);
printf("%d",sol);
return 0;
}