Pagini recente » Cod sursa (job #2212776) | Cod sursa (job #2138791) | Cod sursa (job #1948460) | Cod sursa (job #66435) | Cod sursa (job #2028176)
#include<cstdio>
using namespace std;
int v[100][100];
int s[100];
int n, rasp = 0;
void eval(int b){
if(b < 2)
return;
int frq[100][100];
for(int i = 1; i <= b; i++)
for(int j = 1; j <= b; j++)
frq[i][j] = 0;
for(int i = 1; i <= n; i++)
for(int j = 1; j <= n; j++)
if(v[i][j])
frq[s[i]][s[j]] = 1;
for(int i = 1; i <= b; i++)
for(int j = 1; j <= b; j++)
if(!frq[i][j] && i != j)
return;
rasp++;
}
void bkt(int lev, int big){
if(lev == n + 1){
eval(big);
return;
}
for(int i = 1; i <= big; i++){
s[lev] = i;
bkt(lev + 1, big);
}
if(big < n){
s[lev] = big + 1;
bkt(lev + 1, big + 1);
}
}
int main(){
freopen("copii.in","r",stdin);
freopen("copii.out","w",stdout);
char c[100];
scanf("%d", &n);
for(int i = 1; i <= n; i++){
gets(c);
for(int j = 1; j <= n; j++){
char d = getc(stdin);
v[i][j] = d - '0';
}
}
bkt(1, 0);
printf("%d", rasp);
return 0;
}