Pagini recente » Cod sursa (job #2552342) | Cod sursa (job #318677) | Cod sursa (job #3222191) | Cod sursa (job #516452) | Cod sursa (job #2622959)
#include <fstream>
using namespace std;
ifstream cin ("copii.in");
ofstream cout ("copii.out");
struct ura{
char vv[15];
};
ura v[15];
int m, cnt = 0;
int a[15][15];
int e[15];
int check(int n)
{
int i, j, ok = 1;
if (n == 1)
return 0;
for (i = 1; i <= m; i++)
for (j = 1; j <= m; j++)
if (v[i].vv[j] == '1')
{
a[e[i]][e[j]] = 1;
//a[e[j]][e[i]] = 1;
}
for (i = 1; i <= n; i++)
for (j = i + 1; j <= n; j++)
{
if (a[i][j] == 0)
ok = 0;
a[i][j] = a[j][i] = 0;
}
return ok;
}
void bkt(int k, int n)
{
if (k == m + 1)
cnt += check(n);
else
{
for (int i = 1; i <= n + 1; i++)
{
e[k] = i;
if (i == n + 1)
bkt(k + 1, n + 1);
else
bkt(k + 1, n);
}
}
}
int main()
{
cin >> m;
for (int i = 1; i <= m; i++)
cin >> v[i].vv + 1;
bkt(1, 0);
cout << cnt;
return 0;
}