Pagini recente » Cod sursa (job #1833619) | Cod sursa (job #1208006) | Cod sursa (job #2454589) | Cod sursa (job #2717667) | Cod sursa (job #644409)
Cod sursa(job #644409)
# include <fstream>
using namespace std;
ifstream f ("copii.in");
ofstream g ("copii.out");
int a[100],n,j,i,k,fr[100],maxx[100];
char m[100][100];
int verif (int n)
{
int i,j,q;
if (maxx[n]==1)
return 0;
for (i=1;i<=maxx[n];i++)
{
for (j=1;j<=maxx[n];j++)
fr[j]=0;
for (j=1;j<=n;j++)
if (a[j]==i)
for (q=1;q<=n;q++)
if (m[j][q]=='1')
fr[a[q]]=1;
for (q=1;q<=maxx[n];q++)
if (q!=i)
if (fr[q]==0)
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>>m[i][j];
back (1);
g<<k;
}