Pagini recente » Cod sursa (job #301602) | Cod sursa (job #1886165) | Cod sursa (job #1803803) | Cod sursa (job #2405412) | Cod sursa (job #1359816)
#include<fstream>
using namespace std;
char ch[103];
int n, m[103], i, j, x[103], y[103], nrx, nry, ok, sol, p[103][103];
void back(int k){
if(k==n+1)
return ;
int i, j, q;
nrx=0;
nry=0;
for(i=k; i<=n; i++){
m[i]=1;
for(j=1; j<=n; j++)
if(m[j]==1)
x[++nrx]=j;
else
y[++nry]=j;
ok=0;
for(j=1; j<=nrx; j++)
for(q=1; q<=nry; q++)
if(((m[j]==1 && m[q]==0) || (m[j]==0 && m[q]==1)) && p[j][q]==1){
ok=1;
break;
}
if(ok)
sol++;
back(k+1);
m[i]=0;
}
}
ifstream in("copii.in");
ofstream out("copii.out");
int main(){
in>>n;
for(i=1; i<=n; i++){
in>>ch+1;
for(j=1; j<=n; j++)
if(ch[j]=='1')
p[i][j]=1;
}
back(1);
out<<sol;
return 0;
}