Pagini recente » Cod sursa (job #1935417) | Cod sursa (job #312551) | Cod sursa (job #882417) | Cod sursa (job #2666953) | Cod sursa (job #1373439)
#include <fstream>
#include <string.h>
using namespace std;
ifstream fin("copii.in");
ofstream fout("copii.out");
int n,x[12],nr,sol;
char a[12][12],v[12][12];
int test()
{
memset(v,0,sizeof(v));
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)
if(x[i]!=x[j]&&a[i][j]=='1')
v[x[i]][x[j]]=1;
for(int i=1;i<=nr;i++)
for(int j=1;j<=nr;j++)
if(i!=j&&v[i][j]==0)
return 0;
return 1;
}
void back(int k)
{
if(k==n+1)
{
sol+=test();
return;
}
for(int i=1;i<=nr;i++)
{
x[k]=i;
back(k+1);
}
x[k]=++nr;
back(k+1);
nr--;
}
int main()
{
fin>>n;
for(int i=1;i<=n;i++)
fin>>a[i]+1;
back(1);
fout<<sol-1;
return 0;
}