Pagini recente » Cod sursa (job #2777440) | Cod sursa (job #167721) | Cod sursa (job #3191213) | Cod sursa (job #2033133) | Cod sursa (job #1356202)
#include <fstream>
using namespace std;
int mul,n,sol,st[20];
int v[20][20],a[20][20];
char s[20];
int afis()
{
int e=0;
for(int i = 1; i <= n; ++i)
for(int j = 1; j <= n; ++j)
{
v[i][j]=0;
if(a[i][j] == 1 && st[i]!=st[j]) v[st[i]][st[j]] = 1;
}
for(int i = 1; i <= mul; ++i)
for(int j = 1; j <= mul; ++j)
{
if(i!=j && v[i][j] == 0) return 0;
}
return 1;
}
void back(int k)
{
if (k == n+1) sol+=afis();
else
{
for(int i = 1; i <= mul; ++i)
{
st[k]=i;
back(k+1);
}
st[k] = ++mul;
back(k+1);
--mul;
}
}
int main()
{
ifstream f("copii.in");
ofstream g("copii.out");
f>>n;f.get();
for(int i = 1; i <= n; ++i)
{
f.getline(s+1,20);
for(int j = 1; j <= n; ++j)
if(s[j] == '1') a[i][j]=1;
}
sol=0;
back(1);
--sol;
g<<sol<<"\n";
return 0;
}