Pagini recente » Cod sursa (job #2195129) | Cod sursa (job #1044393) | Cod sursa (job #1286785) | Cod sursa (job #2122182) | Cod sursa (job #1357401)
//horatiu11
# include <cstdio>
# include <cstring>
# define nmax 11
using namespace std;
int n,nr,sol,st[nmax];
bool a[nmax][nmax],ok[nmax][nmax];
char c;
inline bool verif(int k)
{
int i,j;
if(nr==1)return false;
memset(ok,0,sizeof(ok));
for(i=1;i<=n;++i)
for(j=1;j<=n;++j)
if(a[i][j])ok[st[i]][st[j]]=true;
for(i=1;i<=nr;++i)
for(j=1;j<=nr;++j)
if(i!=j && !ok[i][j])return false;
return true;
}
void back(int k)
{
if(k==n+1)
{
if(verif(k))
sol++;
}
else
{
for(int x=1;x<=nr;++x)
{
st[k]=x;
back(k+1);
}
st[k]=++nr;
back(k+1);
--nr;
}
}
int main()
{
int i,j;
freopen("copii.in","r",stdin);
freopen("copii.out","w",stdout);
scanf("%d%c",&n,&c);
for(i=1;i<=n;++i)
{
for(j=1;j<=n;++j)
{
scanf("%c",&c);
if(c=='1')a[i][j]=true;
}
scanf("%c",&c);
}
back(1);
printf("%d\n",sol);
return 0;
}