Pagini recente » Cod sursa (job #1310847) | Cod sursa (job #1239417) | Cod sursa (job #1984573) | Cod sursa (job #2330602) | Cod sursa (job #550744)
Cod sursa(job #550744)
#include <fstream>
#include <cstdio>
using namespace std;
ofstream out("copii.out");
int n,sol[1<<4],cnt;
char s[1<<4][1<<4];
void citire()
{
freopen("copii.in","r",stdin);
scanf("%d\n",&n);
for(int i=1;i<=n;++i)
gets(s[i]+1);
}
void prelucrare(int x)
{
int mat[1<<4][1<<4]={0};
for(int i=1;i<=n;++i)
for(int j=1;j<=n;++j)
if(s[i][j]=='1')
mat[sol[i]][sol[j]]=1;
for(int i=1;i<=x;++i)
for(int j=1;j<=x;++j)
if (i!=j && mat[i][j]==0)
return;
++cnt;
}
void bkt(int p,int val)
{
if(p==n+1)
{
prelucrare(val);
return;
}
for(int i=1;i<=val;++i)
{
sol[p]=i;
bkt(p+1,val);
}
sol[p]=val+1;
bkt(p+1,val+1);
}
void work()
{
bkt(1,0);
out<<cnt-1;
}
int main()
{
citire();
work();
return 0;
}