Pagini recente » Cod sursa (job #2706858) | Cod sursa (job #179306) | Cod sursa (job #3256587) | Cod sursa (job #2517175) | Cod sursa (job #514049)
Cod sursa(job #514049)
#include<stdio.h>
int n,x[11][11],sol[11],rez=0;
void prelucrare(int m)
{
int y[11][11]={0},i,j;
for(i=1;i<=n;++i)
for(j=1;j<=n;++j)
if(i!=j)
if(x[i][j])
y[sol[i]][sol[j]]=1;
for(i=1;i<=m;++i)
for(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;
char s[12];
freopen("copii.in","r",stdin);
freopen("copii.out","w",stdout);
scanf("%d\n",&n);
for(i=1;i<=n;++i)
{
gets(&s[1]);
for(j=1;j<=n;++j)
x[i][j]=s[j]-'0';
}
bkt(1,0);
printf("%d",rez-1);
return 0;
}