Cod sursa(job #1036487)

Utilizator ade_tomi27Enache Adelina ade_tomi27 Data 19 noiembrie 2013 13:44:26
Problema Copii Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.26 kb

#include<stdio.h>
int a[14][14],v[13],st[13],n,gr[13][13],sol;
void verif()
{

    if(v[1]!=n)
    {
        int max=0;
        for(int i=1;i<=n;i++)
        {

            if(st[i]>max)
                max=st[i];
            for(int j=1;j<=n;j++)
                gr[i][j]=0;
        }
        int i,j;
        for(i=1;i<=n;i++)
            for(j=1;j<=n;j++)
            {

                if(a[i][j]=='1')
                    gr[st[i]][st[j]]=1;
            }
        int ok=0;
        for(i=1;i<=max;i++)
            for(j=1;j<=max;j++)
                if(i!=j && gr[i][j]==0) ok=1;
        if(ok==0)
            sol++;

    }

}
void back(int k)
{

    if(k==n+1)
       verif();
    else
    {

       for(int i=1;i<=n;i++)
       {
           //int ok=0;
           if(v[i-1]>0||i==1){
                st[k]=i;
                v[i]++;
                back(k+1);
                v[i]--;
           }

       }
    }
}
char cg;
int main()
{
    freopen("copii.in","r",stdin);
    freopen("copii.out","w",stdout);
    scanf("%d ",&n);
    int i,j;
    for(i=1;i<=n;i++)
    {
        for(j=1;j<=n;j++)
            scanf("%c",&a[i][j]);
        scanf("%c",&cg);
    }
    back(1);
    printf("%d",sol);
    return 0;
}