Pagini recente » Cod sursa (job #910535) | Cod sursa (job #1969754) | Cod sursa (job #1431861) | Cod sursa (job #133292) | Cod sursa (job #552375)
Cod sursa(job #552375)
#include <fstream>
using namespace std;
ifstream fi ("copii.in");
ofstream fo ("copii.out");
int N, V[12], X[12], A[12][12], M[12][12], C = -1;
int verif (int niv)
{
int i, j;
for (i = 1; i <= niv; i++)
for (j = 1; j <= niv; j++)
M[i][j] = 0;
for (i = 1; i <= N; i++)
for (j = 1; j <= N; j++)
if ( A[i][j] )
M[ X[i] ][ X[j] ] = 1;
for (i = 1; i <= niv; i++)
for (j = 1; j <= niv; j++)
if (i != j && !M[i][j])
return 0;
return 1;
}
void part (int k, int niv)
{
if (k == N + 1)
{
if ( verif (niv) ) C++;
/*
int i, j;
for (i = 1; i <= niv; i++)
{
fo << '{';
for (j = 1; j <= N; j++)
if (X[j] == i)
fo << ' ' << j;
fo << " } ";
}
fo << '\n';
*/
return;
}
for (int i = 1; i <= niv + 1; i++)
{
X[k] = i;
part (k + 1, niv>i?niv:i);
}
}
int main ()
{
int i, j;
char c;
fi >> N;
for (i = 1; i <= N; i++)
{
for (j = 1; j <= N; j++)
{
fi >> c;
A[i][j] = c - '0';
}
}
part (1, 0);
fo << C;
return 0;
}