Pagini recente » Cod sursa (job #2629869) | Cod sursa (job #233454) | Cod sursa (job #2591758) | Cod sursa (job #1145873) | Cod sursa (job #421196)
Cod sursa(job #421196)
#include<cstdio>
using namespace std;
int i,n,j,s=0,cont,k,p;
char a[11][11],c;
bool oki=1,oki0=1;
int aranj(int n,int k);
int comb(int s,int n,int k);
int main(){
freopen("copii.in","r",stdin);
freopen("copii.out","w",stdout);
scanf("%d",&n);
for(i=1;i<=n;++i){
cont=0; scanf("%c",&c);
for(j=1;j<=n;++j){
scanf("%c",*(a+i)+j);
if(a[i][j]=='1') ++cont;
}
if(cont!=1) oki=false;
if(cont) oki0=false;
}
if(oki){ --s;
if(n==2){ printf("%d",1); return 0;}}
if(oki0) {printf("%d",0); return 0;}
if(!oki&&n==2){ printf("%d",0); return 0;}
for(k=1;k<=(n+1)/2;++k){
p=aranj(n,k);
p-=comb(p,n,k);
s+=p;}
printf("%d",s);
return 0;
}
int aranj(int n, int k){
int ar=1;
for(i=k+1;i<=n;++i)
ar=ar*i;
return ar;
}
int comb(int s,int n, int k){
int com=1,combin;
for(i=2;i<=n-k;++i)
com=com*i;
combin=s/com;
return combin;
}