Cod sursa(job #1376476)

Utilizator GinguIonutGinguIonut GinguIonut Data 5 martie 2015 17:32:54
Problema Copii Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.97 kb
#include <fstream>
#include <string.h>
#include <algorithm>
using namespace std;
ifstream fin("copii.in");
ofstream fout("copii.out");
int TaramulFericirii[11][11],i,j,n,stack[11],Max[11],sol,nr;
char copii[11][11];
int test()
{
    for(i=1;i<=n;i++)
        for(j=1;j<=n;j++)
            if(stack[i]!=stack[j]&&copii[i][j]=='1')
                TaramulFericirii[stack[i]][stack[j]]=1;
                int ok=1;
    for(i=1;i<=Max[n];i++)
        for(j=1;j<=Max[n];j++)
            if(TaramulFericirii[i][j]!=1&&i!=j)
            {
                ok=0;
                TaramulFericirii[i][j]=0;
            }
        nr+=ok;
}
void back(int k)
{
    if(k==n+1)
        sol+=test();
    else
    {
        for(int i=1;i<=1+Max[k-1];i++)
        {
            stack[k]=i;
            Max[k]=max(i,Max[k-1]);
            back(k+1);
        }
    }
}
int main()
{
fin>>n;
for(i=1;i<=n;i++)
    fin>>copii[i]+1;
back(1);
fout<<nr-1;
    return 0;
}