Pagini recente » Cod sursa (job #1522464) | Cod sursa (job #1364439) | Cod sursa (job #1586923) | Cod sursa (job #2176806) | Cod sursa (job #557319)
Cod sursa(job #557319)
#include<fstream>
using namespace std;
ifstream f("copii.in");
ofstream g("copii.out");
# define nmax 12
char P[nmax][nmax];
int C[nmax],N;
long long POS=0;
void citire()
{
f>>N;f.get();
int i;
for(i=1;i<=N;++i)
f>>P[i]+1;
}
int verif(int nrg)
{
int i,j;
char G[nmax][nmax]={0};
for(i=1;i<=N;++i)
for(j=1;j<=N;++j)
if(P[i][j]=='1')
G[C[i]][C[j]]=1;
for(i=1;i<=nrg;++i)
for(j=1;j<=nrg;++j)
if(G[i][j]==0 && j!=i) return 0;
return 1;
}
void bec(int k,int nrg)
{
if(k==N+1)
{
POS+=verif(nrg);
return;
}
int i;
for(i=1;i<=nrg;++i)
{
C[k]=i;
bec(k+1,nrg);
}
C[k]=nrg+1; bec(k+1,nrg+1);
}
int main()
{
citire();
bec(1,0);
g<<POS-1<<'\n';
}