Pagini recente » Cod sursa (job #2227305) | Cod sursa (job #1174839) | Cod sursa (job #1411532) | Cod sursa (job #551799) | Cod sursa (job #494798)
Cod sursa(job #494798)
#include<cstdio>
const int N=30;
int n,mat[N][N],s[N],nr;
char a[N][N];
void citire()
{
freopen("copii.in","r",stdin);
freopen("copii.out","w",stdout);
scanf("%d\n",&n);
for (int i=1;i<=n;++i)
gets(a[i]+1);
}
void lucrez(int x)
{
for (int i=1;i<=n;i++)
for(int j=1;j<=n;j++)
if (a[i][j]=='1')
mat[s[i]][s[j]]=1;
for (int i=1;i<=x;i++)
for(int j=1;j<=x;j++)
if (i!=j && mat[i][j]==0)
return;
++nr;
}
void bkt(int p,int max)
{
if (p==n+1)
{
lucrez(max);
return;
}
for (int i=1;i<=max;++i)
{
s[p]=i;
bkt(p+1,max);
}
s[p]=max+1;
bkt(p+1,max+1);
}
int main()
{
citire();
bkt(1,0);
printf("%d\n",nr-1);
return 0;
}