Pagini recente » template/fmi-no-stress-2010/footer | Istoria paginii runda/lab_arbori/clasament | Istoria paginii runda/26_februarie_simulare_oji_2024_clasa_9 | Monitorul de evaluare | Cod sursa (job #646987)
Cod sursa(job #646987)
#include<fstream>
#include<cstring>
using namespace std;
string s;
int sol,nr,a[11],m[11][11],v[11],n;
ifstream f("copii.in");
ofstream g("copii.out");
int verifica(){
int i,j,ok=1,k;
for (i=1;i<=nr;i++){
ok=1;
memset(v,0,sizeof(v));
for (j=1;j<=n;j++)
if(a[j]==i)
for (k=1;k<=n;k++)
if (m[j][k]==1) v[a[k]]=1;
for (j=1;j<=nr; j++)
if ((j!=i) && (v[j]==0)){
ok=0;
break;
}
if(ok==0) break;
}
return ok;
}
void back(int l){
int i,k;
if (l==n+1) sol+=verifica();
else{
k=nr+1;;
for (i=1;i<=k;i++){
a[l]=i;
if (i==k)
nr++;
back(l+1);
if (i==k)
nr--;
}
}
}
int main(){
int i,j;
f>>n;
getline(f,s);
nr=0;
for (i=1;i<=n;i++)
{
getline(f,s);
for (j=0;j<n;j++)
m[i][j+1]=s[i]-48;
}
back(1);
g<<sol;
return 0;
}