Pagini recente » Cod sursa (job #1268913) | Cod sursa (job #2632010) | Cod sursa (job #2845977) | Cod sursa (job #2375874) | Cod sursa (job #442511)
Cod sursa(job #442511)
#include <stdio.h>
#include <string.h>
#define Nmax 11
int a[Nmax][Nmax],leg[Nmax][Nmax];
int mul[Nmax];
int n,i,j,sol,nrm;
void check(){
int i, j, ok=0;
if(nrm <=1 ) return;
memset(leg,0,sizeof(leg));
for(i=1;i<=n;++i)
for(j=1;j<=n;++j)
if(a[i][j])
if(!leg[mul[i]][mul[j]]){
ok++;
leg[mul[i]][mul[j]]=1;
}
if(ok >= nrm*(nrm-1) )
sol++;
}
void back(int k){
if(k>n) check();
else{
for(j=1; j<=nrm; ++j){
mul[k]=j;
back(k+1);
}
mul[k]=++nrm;
back(k+1);
--nrm;
}
}
int main(){
freopen("copii.in","r",stdin);
freopen("copii.out","w",stdout);
scanf("%d",&n);
for(i=1;i<=n;++i)
for(j=1;j<=n;++j) scanf("%d",&a[i][j]);
back(1);
printf("%d\n",sol);
fclose(stdin); fclose(stdout);
return 0;
}