Cod sursa(job #2476390)

Utilizator marian013Giugioiu Marian Constantin marian013 Data 18 octombrie 2019 19:18:56
Problema Copii Scor 80
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.75 kb
#include <bits/stdc++.h>
using namespace std;
ifstream f("copii.in");
ofstream g("copii.out");
int viz[15][15],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;
}