#include<iostream> #include<Cstring> using namespace std; int g[10][10],xx[10],yy[10],n,ans; void dfs(int x,int y,int k){ xx[x]=1;yy[y]=1; if(k==1) ans++; for(int i=x+1;i<=n;++i){ for(int m=1;m<=n;++m){ if(g[i][m]=='#'&&xx[i]==0&&yy[m]==0) dfs(i,m,k-1); } } xx[x]=0;yy[y]=0; } int main(){ int k; while(cin>>n>>k&&(n!=-1||k!=-1)){ getchar(); ans=0; memset(xx,0,sizeof(xx)); memset(yy,0,sizeof(yy)); for(int i=1;i<=n;++i){ for(int m=1;m<=n;++m){ scanf("%c",&g[i][m]); } getchar(); } for(int i=1;i<=n;++i){ for(int m=1;m<=n;++m) if(g[i][m]=='#') dfs(i,m,k); } cout<<ans<<endl; } } |
Double click to view unformatted code.