Pagini recente » Cod sursa (job #1733320) | Cod sursa (job #3256805) | Cod sursa (job #1442592) | Cod sursa (job #697531) | Cod sursa (job #2475819)
#include<fstream>
using namespace std;
ifstream cin("copii.in");
ofstream cout("copii.out");
int n,par[15],cnt;
bool a[15][15];
bool 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++){
gr[par[i]][par[j]]|=a[i][j];
gr[par[j]][par[i]]|=a[j][i];
}
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;
}