Pagini recente » Cod sursa (job #609636) | Cod sursa (job #1952624) | Cod sursa (job #3152575) | Cod sursa (job #2067760) | Cod sursa (job #422257)
Cod sursa(job #422257)
#include <stdio.h>
FILE *f,*s;
struct prieten
{
char x[50];
};
prieten v1[50],v3[50];
int n,i,j,rez,v2[50];
int Verifica()
{
int max=0;
for(int i=2;i<=n;i++)
{
if(v2[i]>max)
max=v2[i];
}
for(int i=1;i<=n;i++)
for(int j=0;j<=10;j++)
v3[i].x[j]='0';
for(int i=1;i<=n;i++)
{
for(int j=0;j<=n-1;j++)
{
if(v1[i].x[j]=='1')
v3[v2[i]].x[v2[j+1]]='1';
}
}
int ok=1;
for(int i=1;i<=max;i++)
{
for(int j=1;j<=max;j++)
{
if(v3[i].x[j]!='1'&&i!=j)
ok=0;
}
}
if(ok==1&&max>1)
return 1;
else
return 0;
}
void Echipe(int k, int l)
{
if(k==n+1)
{
rez+=Verifica();
return;
}
for(int i=1;i<=l;i++)
{
v2[k]=i;
Echipe(k+1,l);
}
v2[k]=l+1;
Echipe(k+1,l+1);
}
int main()
{
f=fopen("copii.in","r");
s=fopen("copii.out","w");
fscanf(f,"%d\n",&n);
for(i=1;i<=n;i++)
fscanf(f,"%s\n",&v1[i].x);
Echipe(1,0);
fprintf(s,"%d",rez);
fclose(s);
}