Pagini recente » Cod sursa (job #2246692) | Cod sursa (job #1899149) | Cod sursa (job #1418398) | Cod sursa (job #2690966) | Cod sursa (job #421476)
Cod sursa(job #421476)
#include<fstream.h>
int v[11], m[11][11], n;
long sol;
int testeaza(){
int t[11][11], max=0, i, k;
for(i=1; i<=n; i++)
for(k=1; k<=n; k++)
t[i][k]=0;
for(i=1; i<=n; i++)
if(v[i]>max)
max=v[i];
for(i=1; i<=n; i++)
for(k=1; k<=n; k++)
if(m[i][k])
t[v[i]][v[k]]=1;
if(max<2)
return 0;
for(i=1; i<=max; i++)
for(k=1; k<=max; k++)
if(!t[i][k] && k!=i)
return 0;
return 1;
}
void back(int i)
{
int j;
if(i>n)
if(testeaza())
sol++;
else;
else
for(j=1; j<=n; j++)
{
v[i]=j;
back(i+1);
}
}
int main(){
int i, j;
char c;
ifstream f("copii.in");
f>>n;
f.get();
for(i=1; i<=n; i++)
for(j=1; j<=n; j++)
{
f>>c;
m[i][j]=(int)(c-'0');
}
back(1);
ofstream g("copii.out");
g<<sol/2;
g.close();
return 0;
}