Pagini recente » Cod sursa (job #2277260) | Cod sursa (job #165561) | Cod sursa (job #2601183) | Cod sursa (job #2815629) | Cod sursa (job #1721560)
#include<stdio.h>
int sol[11],n,maxim;
int nr;
int a[11][11];
int c[12][13];
int back(int k)
{
int i,j,maxprec;
if(k==n+1)
{
maxim=1;
for(i=1;i<=n;i++)
{if(maxim<sol[i])
maxim=sol[i];
}
if(maxim>1)
{
for(i=0;i<n;i++)
for(j=0;j<n;j++)
{
if(a[i][j]==1)
{
c[sol[i+1]][sol[j+1]]++;
}
}
int vr=0;
for(i=1;i<=maxim;i++)
{for(j=i+1;j<=maxim;j++)
{if(c[i][j]==0)
vr=1;
c[i][j]=0;
}
}
if(!vr)
{
nr++;}
}
}
else
{
maxprec=0;
for(j=1;j<=k-1;j++)
if(maxprec<sol[j])
maxprec=sol[j];
for(i=1;i<=maxprec+1;i++)
{
sol[k]=i;
back(k+1);
}
}
}
int main()
{
FILE *f;
f=fopen("copii.in","r");
fscanf(f,"%d\n",&n);
int i,j;
for(i=0;i<n;i++)
{char c;
for(j=0;j<n;j++)
{
fscanf(f,"%c",&c);
a[i][j]=c-48;
}
fscanf(f,"%c",&c);
}
back(1);
FILE *g;
g=fopen("copii.out","w");
fprintf(g,"%d",nr);
}