Cod sursa(job #551406)

Utilizator nightwish0031Vlad Radu Cristian nightwish0031 Data 10 martie 2011 19:07:26
Problema Copii Scor 100
Compilator cpp Status done
Runda bkt Marime 0.76 kb
#include<cstdio>
#include<cstring>


int n,rez;
char s[11][11];
int st[11];

void files()
{
	freopen("copii.in","r",stdin);
	freopen("copii.out","w",stdout);
}

void read()
{
	int i,j;
	files();
	scanf("%d ",&n);
	for (i=1;i<=n;++i)
		gets(s[i]+1);
		
}
void prelucreaza(int m)
{
	int i,j;
	int x[11][11]={0};
	for (i=1;i<=n;++i)
		for (j=1;j<=n;++j)
			if (s[i][j]=='1')
				x[st[i]][st[j]]=1;
	for (i=1;i<=m;++i)
		for (j=1;j<=m;++j)
			if (i!=j&&x[i][j]==0) return;
	++rez;
}

void back(int k,int m)
{
	
	int i;
	if (k==n+1)
	{
		prelucreaza(m);
		return;
	}
	for (i=1;i<=m;++i)
	{
		st[k]=i;
		back(k+1,m);
	}
	st[k]=m+1;
	back(k+1,m+1);
	
}
int main()
{
	
	read();
	back(1,0);
	printf("%d",rez-1);
	
	return 0;
}