Pagini recente » Cod sursa (job #2582299) | Cod sursa (job #2136782) | Cod sursa (job #672930) | Cod sursa (job #1254988) | Cod sursa (job #431795)
Cod sursa(job #431795)
#include<stdio.h>
#define N 16
char a[N][N];
int v[N], n, sol;
FILE *fin, *fout;
int ver(int nrg)
{
if(nrg < 2)
return 0;
int b[N][N] = {0};
for(int i = 1; i <= n; i++)
for(int j = 1; j <= n; j++)
if(a[i][j] == '1')
b[v[i]][v[j]] = 1;
for(int i = 1; i <= nrg; i++)
for( int j = 1; j <= nrg; j++)
if(i != j && !b[i][j])
return 0;
return 1;
}
void back(int k, int nrg)
{
if(k == n + 1)
{
sol += ver(nrg);
return;
}
for(int i = 1; i <= nrg; i++)
{
v[k] = i;
back(k + 1, nrg);
}
v[k] = nrg + 1;
back(k + 1, nrg + 1);
}
int main()
{
fin = fopen("copii.in" ,"rt");
fout = fopen("copii.out" ,"wt");
fscanf(fin, "%d", &n);
for(int i = 1; i <= n; i++)
fscanf(fin, "%s", a[i] + 1);
back(1, 0);
fprintf(fout, "%d\n", sol);
return 0;
}