Pagini recente » Cod sursa (job #856248) | Cod sursa (job #1028710) | Cod sursa (job #2729720) | Cod sursa (job #2722378) | Cod sursa (job #514043)
Cod sursa(job #514043)
#include<stdio.h>
int sol[11],x[11][11],n,rez;
void prelucrare(int m)
{
int y[11][11] = {0};
for(int i=1 ; i<=n ; ++i)
for(int j=1 ; j<=n ; ++j)
if (i!=j)
if (x[i][j])
y[sol[i]][sol[j]]=1;
for(int i=1 ; i<=m ; ++i)
for(int j=1 ; j<=m ; ++j)
if(i!=j && y[i][j] == 0)
return;
++rez;
}
void bkt(int p,int m)
{
if(p==n+1)
{
prelucrare(m);
return;
}
for(int i=1;i<=m;++i)
{
sol[p]=i;
bkt(p+1,m);
}
sol[p]=m+1;
bkt(p+1,m+1);
}
int main()
{
int i,j;
freopen("copii.in","r",stdin);
freopen("copii.out","w",stdout);
scanf("%d",&n);
for(i=1;i<=n;++i)
for(j=1;j<=n;++j)
scanf("%d",&x[i][j]);
bkt(1,0);
printf("%d",rez-1);
return 0;
}