Pagini recente » Cod sursa (job #700567) | Cod sursa (job #1074500) | Cod sursa (job #996808) | Cod sursa (job #1376703) | Cod sursa (job #422236)
Cod sursa(job #422236)
#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 ok=0;
int max=0;
for(int i=2;i<=n;i++)
{
if(v2[i]!=v2[i-1])
ok=1;
if(v2[i]>max)
max=v2[i];
}
if(ok==0)
return 0;
for(int i=1;i<=n;i++)
for(int j=0;j<=10;j++)
v3[i].x[j]=' ';
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';
}
}
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)
return 1;
else
return 0;
}
void Echipe(int k)
{
if(k==n+1)
rez+=Verifica();
else
{
for(int i=1;i<=n;i++)
{
v2[k]=i;
Echipe(k+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);
fprintf(s,"%d",rez/n);
fclose(s);
}