#include<bits/stdc++.h>
using namespace std;
#define SET(a) memset(a,-1,sizeof(a))
#define CLR(a) memset(a,0,sizeof(a))
#define PI acos(-1.0)
#define MOD 1000000007
#define MX 100010
string board[16];
int n, cnt;
void nq(int row, int col, int lft, int rgt)
{
if(row==n)
{
cnt++;
return;
}
int all = col | lft | rgt;
for(int i=0;i<n;i++)
{
if(!((1<<i) & all) && board[row][i]=='.')
nq(row+1, col | (1<<i), (lft | (1<<i))<<1, (rgt | (1<<i))>>1 );
}
return;
}
int main()
{
ios_base::sync_with_stdio(0);cin.tie(0);
int tc, kk=1;
string s;
while(cin>>n && n)
{
for(int i=0;i<n;i++)
cin>>board[i];
cnt=0;
nq(0, 0, 0, 0);
cout<<"Case "<<kk++<<": "<<cnt<<"\n";
}
return 0;
}
No comments:
Post a Comment