Pagini recente » Cod sursa (job #2508791) | Cod sursa (job #853501) | Cod sursa (job #2161950) | Cod sursa (job #1199954) | Cod sursa (job #447264)
Cod sursa(job #447264)
#include<fstream>
using namespace std;
ifstream f("copii.in");
ofstream g("copii.out");
int n,ns=0,sol[25];
char a[25][25];
void verif(int m);
void bkt(int p, int max)
{
if(p==n+1)
{
verif(max);
return;
}
for(int i=1;i<=max;++i)
{
sol[p]=i;
bkt(p+1,max);
}
sol[p]=1+max;
bkt(p+1,1+max);
}
void verif(int m)
{
int i,j;
bool b[25][25]={false};
for(i=1;i<=n;++i)
for(j=1;j<=n;++j)
if(a[i][j]=='1')
b[sol[i]][sol[j]]=true;
for(i=1;i<=m;++i)
for(j=1;j<=m;++j)
if(i!=j && !b[i][j])
return;
++ns;
}
int main()
{
int i;
f>>n>>ws;
for(i=1;i<=n;++i)
f.getline(1+a[i],25);
bkt(1,0);
g<<ns-1;
return 0;
}