Pagini recente » Cod sursa (job #3171650) | Cod sursa (job #2224586) | Cod sursa (job #2285257) | Cod sursa (job #2041251) | Cod sursa (job #2479196)
#include<fstream>
using namespace std;
ifstream f("copii.in");
ofstream g("copii.out");
int n;
char ch, a[20][20];
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()
{
f>>n;
f.get();
for(int i = 1 ; i <= n ; i++)
f.getline(1 + a[i], 20);
backtr(1, 0);
g<<nr_sol - 1;
return 0;
}