Pagini recente » Cod sursa (job #372251) | Cod sursa (job #355715) | Cod sursa (job #2506480) | Cod sursa (job #1433027) | Cod sursa (job #2475806)
#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=1;j<=n;j++)
if(par[i]!=par[j] && a[par[i]][par[j]])
gr[par[i]][par[j]]=1;
if(maxGr==1) return;
for(int i=1;i<=maxGr;i++)
for(int j=1;j<=maxGr;j++)
if(i!=j && !gr[i][j])
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;
}