Pagini recente » Cod sursa (job #1306165) | Cod sursa (job #527635) | Cod sursa (job #2160832) | Cod sursa (job #2717616) | Cod sursa (job #1357678)
#include<fstream>
#include<cstring>
using namespace std;
int n,i,j,nr,s,v[12][12],y[12][12],x[12];
char ss[12][12];
//FILE *f,*g;
ifstream fin("copii.in");
ofstream fout("copii.out");
int verif(){
int i,j;
memset(y,0,sizeof(y));
for(i=1;i<=n;i++){
for(j=1;j<=n;j++){
if( ss[ i ][ j ]=='1' && x[i] != x[j] ) {
y[ x[i] ] [ x[j] ]=1;
}
}
}
for(i=1;i<=nr;i++){
for(j=1;j<=nr;j++){
if(i!=j && !y[i][j])
return 0;
}
}
return 1;
}
void back(int k){
if(k==n+1){
s+=verif();
return;
}
for(int i=1;i<=nr;i++){
x[k]=i;
back(k+1);
}
x[k]=++nr;
back(k+1);
nr--;
}
int main(){
//f=fopen("copii.in","r");
//g=fopen("copii.out","w");
//fscanf(f,"%d",&n);
fin>>n;
for(i=1;i<=n;i++){
// fscanf(f,"%s",ss[i]+1);
fin>>ss[i]+1;
}
back(1);
// fprintf(g,"%d",s-1);
fout<<s-1;
// fclose(f);
// fclose(g);
return 0;
}