Pagini recente » Cod sursa (job #2954115) | Cod sursa (job #2619384) | Cod sursa (job #1101598) | Cod sursa (job #2706977) | Cod sursa (job #614472)
Cod sursa(job #614472)
#include<cstdio>
int n,nrs,g[11];
char s[12][12];
bool a[12][12];
void read()
{
freopen("copii.in","r",stdin);
freopen("copii.out","w",stdout);
scanf("%d\n",&n);
for(int i=1;i<=n;i++)
gets(s[i]+1);
}
void resetmat(bool a[12][12])
{
for(int i=0;i<12;i++)
for(int j=0;j<12;j++)
a[i][j]=false;
}
void edit(int nrg)
{
resetmat(a);
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)
if(s[i][j]=='1')
a[g[i]][g[j]]=true;
for(int i=1;i<=nrg;i++)
for(int j=1;j<=nrg;j++)
if(!a[i][j] && i!=j)
return;
++nrs;
}
void back(int p,int nrg)
{
if(p==n+1)
{
if(nrg>1)
edit(nrg);
return;
}
for(int i=1;i<=nrg;i++)
{
g[p]=i;
back(p+1,nrg);
}
g[p]=nrg+1;
back(p+1,nrg+1);
}
int main()
{
read();
back(1,0);
printf("%d",nrs);
return 0;
}