Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //Kaori Miyazono, did I reach you ?
- #include <bits/stdc++.h>
- using namespace std;
- typedef long long int lli;
- bool c[40], d1[40], d2[40];
- int n;
- int ans;
- bool bad[20][20];
- void vai(int at){
- if ( at == n ){
- ans++;
- return;
- }
- for(int i = 0; i < n; i++){
- if ( bad[at][i] ) continue;
- if ( c[i] || d1[at + i] || d2[n - 1 + i - at] ) continue;
- c[i] = d1[at + i] = d2[n - 1 + i - at] = 1;
- vai(at + 1);
- c[i] = d1[at + i] = d2[n - 1 + i - at] = 0;
- }
- }
- int main(){
- ios::sync_with_stdio(0);cin.tie(0);
- int cas = 1;
- while(cin >> n, n){
- memset(c, 0, sizeof c);
- memset(d1, 0, sizeof d1);
- memset(d2, 0, sizeof d2);
- memset(bad, 0, sizeof bad);
- ans = 0;
- for(int i = 0; i < n; i++){
- for(int j = 0; j < n; j++){
- char c;
- cin >> c;
- if ( c == '*' ) bad[i][j] = 1;
- }
- }
- vai(0);
- cout << "Case " << cas << ": " << ans << endl;
- cas++;
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement