Pagini recente » Cod sursa (job #1727325) | Cod sursa (job #695286) | Cod sursa (job #3239956) | Cod sursa (job #1476911) | Cod sursa (job #481077)
Cod sursa(job #481077)
#include <fstream>
using namespace std;
int n, m;
char a[10][10];
int v[11], ntot;
void Back(int k);
void Test();
int main()
{
ifstream fin("copii.in");
ofstream fout("copii.out");
fin >> n;
for (int i = 0; i < n; ++i)
fin >> a[i];
for (int i = 2; i <= n; ++i)
{
m = i;
Back(1);
}
fout << ntot;
fin.close();
fout.close();
}
void Back(int k)
{
for (int i = v[k - 1] + 1; i <= n - m + k; ++i)
{
v[k] = i;
if (k == m) Test();
else Back(k + 1);
}
}
void Test()
{
v[m + 1] = n + 1;
for (int i = 1; i <= m; ++i)
for (int k = 1; k <= m; ++k)
if (i != k)
{
bool ok = false;
for (int j = v[i]; j < v[i + 1]; ++j)
for (int l = v[k]; l < v[k + 1]; ++l)
if (a[j - 1][l - 1] == '1')
ok = true;
if (ok == false) return;
}
++ntot;
}