Pagini recente » Cod sursa (job #423257) | Cod sursa (job #173557) | Cod sursa (job #2788982) | Cod sursa (job #3277517) | Cod sursa (job #525560)
Cod sursa(job #525560)
#include<fstream>
using namespace std;
ifstream in("copii.in");
ofstream out("copii.out");
int sol[11],n,m,nrs;
char a[11][11];
int prelucrare(int nr)
{
char b[11][11]={0};
int i,j;
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
if(a[i][j]=='1')
b[sol[i]][sol[j]]=1;
for(i=1;i<=nr;i++)
for(j=1;j<=nr;j++)
if(j!=i && b[i][j]==0)
return 0;
return 1;
}
void bkt(int p, int nr)
{
if(p==n+1)
{
nrs += prelucrare(nr);
return;
}
for(int i=1;i<=nr;i++)
{
sol[p]=i;
bkt(p+1,nr);
}
sol[p]=nr+1;
bkt(p+1,nr+1);
}
int main()
{
int i;
in>>n>>ws;
for(i=1;i<=n;i++)
in.getline(1+a[i],11);
bkt(1,0);
out<<nrs-1;
return 0;
}