Pagini recente » Cod sursa (job #2463049) | Cod sursa (job #956295) | Cod sursa (job #2145821) | Cod sursa (job #304916) | Cod sursa (job #1901318)
#include <fstream>
using namespace std;
ifstream fin ("copii.in");
ofstream fout("copii.out");
int nr[12],n,gr[12][12],g[12],u[12],z,i;
char a[12][12];
void bc (int k,int ng)
{
int i,j,q;
if (k>n)
{
if (ng<2) return ;
for (i=1;i<=ng;++i)
{
for (j=1;j<=nr[i];++j)
{
for (q=1;q<=n;++q)
{
if (a[gr[i][j]][q]=='1')
{
u[g[q]]=i; // g[q] este acoperita
}
}
}
for (j=1;j<=ng;++j)
{
if (j!=i && u[j]!=i)
{
return;
}
}
}
++z;
return;
}
for (i=1;i<=ng;++i)
{
gr[i][++nr[i]]=k;
g[k]=i;
bc(k+1,ng);
--nr[i];
//g[k]=0;
}
++ng;
gr[ng][++nr[ng]]=k;
g[k]=ng;
bc(k+1,ng);
--nr[ng--];
}
int main()
{
fin >> n;
for (i=1;i<=n;++i)
{
fin >> a[i]+1;
}
bc(1,0);
fout << z;
return 0;
}