Pagini recente » Cod sursa (job #1359900) | Cod sursa (job #1245464) | Cod sursa (job #1471755) | Cod sursa (job #2938409) | Cod sursa (job #421569)
Cod sursa(job #421569)
#include<stdio.h>
char s[100];
long nc,p[100],q[100],nr,n,a[100],i,j;
void soll()
{long i,c;
for(i=1;i<=nc;++i)
for(j=1;j<=nc;++j)
if(i!=j)
if((q[i]&p[j])==0)return;
++nr;
}
void gp(long k)
{long j;
if(k-1==n){if(nc>1)soll();}
else
{for(j=1;j<=nc;++j)
{long pp=p[j];
p[j]|=(1<<(k-1));
long qq=q[j];
q[j]|=a[k];
gp(k+1);
p[j]=pp;
q[j]=qq;}
++nc;
p[nc]=(1<<(k-1));
q[nc]=a[k];
gp(k+1);
--nc;}}
int main()
{
freopen("copii.in","r",stdin);
freopen("copii.out","w",stdout);
scanf("%ld\n",&n);
for(i=1;i<=n;++i)
{gets(s);
for(j=1;j<=n;++j)
if(s[j-1]=='1')a[i]|=(1<<(j-1));}
gp(1);
printf("%ld\n",nr);
return 0;
}