Pagini recente » Cod sursa (job #2398332) | Cod sursa (job #2373866) | Cod sursa (job #167734) | Cod sursa (job #878580) | Cod sursa (job #2472658)
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;
ifstream f("copii.in");
ofstream g("copii.out");
int v[11],n,sol;
char a[11][11];
bool check(int nr_echipe)
{
int i,j,ok[11][11];
if(nr_echipe<2)
return 0;
for(i=1;i<=nr_echipe;i++)
{
for(j=1;j<=nr_echipe;j++)
{
ok[i][j]=0;
}
}
for(i=1;i<=n;i++)
{
for(j=1;j<=n;j++)
{
if(a[i][j]=='1')
{
ok[v[i]][v[j]]=1;
}
}
}
for(i=1;i<=nr_echipe;i++)
{
for(j=1;j<=nr_echipe;j++)
{
if(i!=j)
{
if(ok[i][j]==0)
return 0;
}
}
}
return 1;
}
void bkt(int k,int nr_echipe)
{
if(k==n+1)
{
sol+=check(nr_echipe);
}
else
{
for(int i=1;i<=nr_echipe+1;i++)
{
v[k]=i;
if(i<=nr_echipe)
{
bkt(k+1,nr_echipe);
}
else
{
bkt(k+1,nr_echipe+1);
}
}
}
}
int main()
{
int i;
f>>n;
for(i=1;i<=n;i++)
{
f>>(a[i]+1);
}
bkt(1,0);
g<<sol;
return 0;
}