Pagini recente » Cod sursa (job #2821203) | Cod sursa (job #3264201) | Cod sursa (job #211803) | Cod sursa (job #413357) | Cod sursa (job #2266335)
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("copii.in");
ofstream fout("copii.out");
int n;
long long s;
bool a2[11][11],a[11][11];
int sol[11];
bool ver(int nre){
if(nre==1){
return false;
}
for(int i=1;i<=n;i++){
for(int ii=1;ii<=n;ii++){
a2[i][ii]=false;
}
}
for(int i=1;i<=n;i++){
for(int ii=1;ii<=n;ii++){
if(i!=ii){
if(a[i][ii]){
a2[sol[i]][sol[ii]]=true;
}
}
}
}
for(int i=1;i<=nre;i++){
for(int ii=1;ii<=nre;ii++){
if(i!=ii){
if(!a2[i][ii]){
return false;
}
}
}
}
return true;
}
void f(int p,int nre){
if(p-1==n){
if(ver(nre)){
s++;
}
return;
}
for(int i=1;i<=nre;i++){
sol[p]=i;
f(p+1,nre);
}
sol[p]=nre+1;
f(p+1,nre+1);
}
int main()
{
char x;
fin>>n;
for(int i=1;i<=n;i++){
for(int ii=1;ii<=n;ii++){
fin>>x;
if(x=='1'){
a[i][ii]=true;
}
}
}
f(1,0);
fout<<s;
return 0;
}