Pagini recente » Cod sursa (job #2192396) | Cod sursa (job #2399057) | Cod sursa (job #2645557) | Cod sursa (job #660458) | Cod sursa (job #1356939)
#include <cstring>
#include <fstream>
#define DIM 12
using namespace std;
ifstream fin("copii.in");
ofstream fout("copii.out");
int N,sol[DIM],nr,answer;
char A[DIM][DIM],v[DIM][DIM];
int test(){
memset(v,0,sizeof(v));
for(int i=1;i<=N;i++)
for(int j=1;j<=N;j++)
if(sol[i]!=sol[j] && A[i][j]=='1')
v[sol[i]][sol[j]]=1;
for(int i=1;i<=nr;i++)
for(int j=1;j<=nr;j++)
if(i!=j && !v[i][j])
return 0;
return 1;
}
void back(int k){
if(k==N+1){
answer+=test();
return;
}
for(int i=1;i<=nr;i++){
sol[k]=i;
back(k+1);
}
sol[k]=++nr;
back(k+1);
nr--;
}
int main(){
fin>>N;
for(int i=1;i<=N;i++)
fin>>A[i]+1;
back(1);
fout<<answer-1;
return 0;
}