Advertisement
Guest User

Untitled

a guest
Oct 20th, 2017
61
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.93 KB | None | 0 0
  1. //Kaori Miyazono, did I reach you ?
  2. #include <bits/stdc++.h>
  3. using namespace std;
  4. typedef long long int lli;
  5.  
  6. bool c[40], d1[40], d2[40];
  7. int n;
  8. int ans;
  9. bool bad[20][20];
  10.  
  11. void vai(int at){
  12. if ( at == n ){
  13. ans++;
  14. return;
  15. }
  16. for(int i = 0; i < n; i++){
  17. if ( bad[at][i] ) continue;
  18. if ( c[i] || d1[at + i] || d2[n - 1 + i - at] ) continue;
  19. c[i] = d1[at + i] = d2[n - 1 + i - at] = 1;
  20. vai(at + 1);
  21. c[i] = d1[at + i] = d2[n - 1 + i - at] = 0;
  22. }
  23. }
  24.  
  25. int main(){
  26. ios::sync_with_stdio(0);cin.tie(0);
  27. int cas = 1;
  28. while(cin >> n, n){
  29. memset(c, 0, sizeof c);
  30. memset(d1, 0, sizeof d1);
  31. memset(d2, 0, sizeof d2);
  32. memset(bad, 0, sizeof bad);
  33. ans = 0;
  34. for(int i = 0; i < n; i++){
  35. for(int j = 0; j < n; j++){
  36. char c;
  37. cin >> c;
  38. if ( c == '*' ) bad[i][j] = 1;
  39. }
  40. }
  41. vai(0);
  42. cout << "Case " << cas << ": " << ans << endl;
  43. cas++;
  44. }
  45. return 0;
  46. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement