Pagini recente » Cod sursa (job #2932269) | Cod sursa (job #3181414) | Cod sursa (job #77359) | Cod sursa (job #2356730) | Cod sursa (job #481328)
Cod sursa(job #481328)
#include<fstream>
#include<stdio.h>
using namespace std;
int n,sol,st[12];
char s[12][12];
int es(int nrg)
{int i,j,ok[12][12]={0};
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
ok[st[i]][st[j]]|=(s[i][j]=='1');
for(i=1;i<=nrg;i++)
for(j=1;j<=nrg;j++)
if(i!=j&&!ok[i][j])
return 0;
return 1;}
void back(int k,int nrg)
{if(k==n+1)
{if(nrg!=1)
sol+=es(nrg);
return;}
int i;
for(i=1;i<=nrg;i++)
{st[k]=i;
back(k+1,nrg);}
st[k]=nrg+1;
back(k+1,nrg+1);}
int main()
{freopen("copii.in","r",stdin);
ofstream w("copii.out");
scanf("%d\n",&n);
int i;
for(i=1;i<=n;i++)
gets(s[i]+1);
back(1,0);
w<<sol<<"\n";
return 0;}