Pagini recente » Cod sursa (job #2798573) | Cod sursa (job #1897449) | Cod sursa (job #731122) | Cod sursa (job #1311161) | Cod sursa (job #2114492)
#include <iostream>
#include <stdio.h>
using namespace std;
int n, m, sol[11], a[11][11], b[11][11], rez;
void prelucrare (int m) {
int pp, i, j;
pp = 1;
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 <= m; i++)
for (j = 1; j <= m; j++)
if (i != j && b[i][j] == 0)
pp = 0;
if (m > 1)
rez += pp;
}
void bkt (int p, int m) {
int i;
if (p - 1 == n) {
prelucrare (m);
return ;
}
for (i = 1; i <=m; i++) {
sol[p] = i;
bkt (p + 1, m);
}
sol[p] = m + 1;
bkt (p + 1, m + 1);
}
int main() {
freopen ("copii.in", "r", stdin);
freopen ("copii.out", "w", stdout);
int i, j;
char c, inutil;
scanf ("%d%c", &n, &inutil);
for (i = 1; i <= n; i++) {
for (j = 1; j <= n; j++) {
scanf ("%c", &c);
a[i][j] = c - '0';
}
scanf ("%c", &inutil);
}
bkt (1, 0);
printf ("%d", rez);
return 0;
}