Pagini recente » Cod sursa (job #3210164) | Cod sursa (job #3208043) | Cod sursa (job #2015876) | Statistici Dragos (kappykk) | Cod sursa (job #644414)
Cod sursa(job #644414)
# include <fstream>
using namespace std;
ifstream f ("copii.in");
ofstream g ("copii.out");
int m[100][100],a[100],n,j,i,k,fr[100],maxx[100];
char ch;
int verif (int n)
{
int i,j,q,w=0;
if (maxx[n]==1)
return 0;
for (i=1;i<=maxx[n];i++)
{
w++;
for (j=1;j<=n;j++)
if (a[j]==i)
for (q=1;q<=m[j][0];q++)
fr[a[m[j][q]]]=w;
for (q=1;q<=maxx[n];q++)
if (q!=i)
if (fr[q]!=w)
return 0;
}
k++;
return 1;
}
void back (int i)
{
int val;
for (val=1;val<=n;val++)
{
a[i]=val;
maxx[i]=(maxx[i-1]<a[i])? a[i]:maxx[i-1];
if (a[i]<=maxx[i-1]+1)
if (i==n)
verif (i);
else
back (i+1);
}
}
int main ()
{
f>>n;
for (i=1;i<=n;i++)
for (j=1;j<=n;j++)
{
f>>ch;
if (ch=='1')
{
m[i][0]++;
m[i][m[i][0]]=j;
}
}
back (1);
g<<k;
}