Pagini recente » Cod sursa (job #725144) | Cod sursa (job #793789) | Cod sursa (job #532770) | Cod sursa (job #1635512) | Cod sursa (job #2479190)
#include<bits/stdc++.h>
#include<cstdio>
using namespace std;
int n;
char ch, a[25][25];
int nr_sol, sol[25];
void solutii(int m)
{
int i,j;
int v[25][25]={0};
for(i = 1 ; i <= n ; i++)
for(j = 1 ; j <= n ; j++)
if(a[i][j] == '1')
v[sol[i]][sol[j]] = 1;
for(i = 1 ; i <= m ; i++)
for(j = 1 ; j <= m ; j++)
if(i != j && v[i][j]==0)
return ;
nr_sol ++;
}
void backtr(int p, int q)
{
if(p == n + 1)
{
solutii(q);
return;
}
for(int i = 1 ; i <= q ; i++)
{
sol[p] = i;
backtr(p + 1, q);
}
sol[p] = q + 1;
backtr(p + 1, q + 1);
}
int main()
{
freopen("copii.in","r",stdin);
ofstream g("copii.out");
scanf("%d\n",&n);
for(int i = 1 ; i <= n ; i++)
gets(1 + a[i]);
backtr(1, 0);
g<<nr_sol - 1;
return 0;
}