Cod sursa(job #2878100)

Utilizator Vasile_AndreiVasile Andrei Calin Vasile_Andrei Data 25 martie 2022 19:56:51
Problema Copii Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.76 kb
#include <bits/stdc++.h>
using namespace std;
ifstream f("copii.in");
ofstream g("copii.out");
bool viz[12][12];
int v[15],n,r=-1;
vector <string> a;
int verif(int x)
{
    memset(viz,0,sizeof(viz));
    for(int i=0;i<n;i++)
    for(int j=0;j<n;j++)
        if(a[i][j]=='1')
            viz[v[i]][v[j]]=1;
    for(int i=1;i<=x;i++)
    for(int j=1;j<=x;j++)
        if(i!=j&&viz[i][j]==0)
            return 0;
    return 1;
}
void back(int k,int m)
{
    if(k==n&&verif(m))
        r++;
    if(k==n) return ;
    for(int i=1;i<=m+1;i++)
    {
        v[k]=i;
        back(k+1,max(m,i));
    }
}
int main()
{
    f>>n;
    for(int i=1;i<=n;i++)
    {
        string s; f>>s;
        a.push_back(s);
    }
    back(0,0);
    g<<r;
}