Pagini recente » Cod sursa (job #3004851) | Cod sursa (job #2987451) | Cod sursa (job #1199132) | Cod sursa (job #279798) | Cod sursa (job #2114438)
#include<cstdio>
#include<bits/stdc++.h>
using namespace std;
ifstream fin("copii.in");
ofstream fout("copii.out");
int i,n,nc,sol[15];
char c[15][15];
int v[15][15];
void verificam(int m)
{
int i,j;
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
if(c[i][j]=='1')
v[sol[i]][sol[j]]='1';
int ok=1;
for(i=1;i<=m;i++)
for(j=1;j<=m;j++)
{
if(i!=j && !v[i][j])
ok=0;
v[i][j]=0;
}
nc+=ok;
}
void bkt(int p,int m)
{
int i;
if(p==n+1)
{
verificam(m);
return;
}
for(i=1;i<=m;++i)
{
sol[p]=i;
bkt(p+1,m);
}
sol[p]=1+m;
bkt(p+1,1+m);
}
int main (){
fin>>n;
for(int i=1;i<=n;i++){
for(int j=1; j<=n; j++){
fin>>c[i][j];
}
}
bkt(1, 0);
fout<<nc-1;
return 0;
}