Pagini recente » Cod sursa (job #2759040) | Cod sursa (job #1774605) | Cod sursa (job #77457) | Cod sursa (job #2354670) | Cod sursa (job #2475813)
#include<fstream>
using namespace std;
ifstream cin("copii.in");
ofstream cout("copii.out");
int n,par[15],cnt;
int a[15][15];
int gr[15][15];
char car;
void b(int k,int maxGr){
if(k==n+1){
for(int i=1;i<=maxGr;i++)
for(int j=1;j<=maxGr;j++)
gr[i][j]=0;
for(int i=1;i<=n;i++)
for(int j=i+1;j<=n;j++){
if(a[i][j])
gr[par[i]][par[j]]=1;
if(a[j][i])
gr[par[j]][par[i]]=1;
}
if(maxGr==1) return;
for(int i=1;i<=maxGr;i++)
for(int j=i+1;j<=maxGr;j++){
if(!gr[i][j])
return;
if(!gr[j][i])
return;
}
++cnt;
return;
}
for(int i=1;i<=maxGr+1;i++){
par[k]=i;
b(k+1,max(maxGr,i));
}
}
int main(){
cin>>n;
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++){
cin>>car;
a[i][j]=car-'0';
}
b(1,0);
cout<<cnt;
}