Ankit_132

D

Oct 28th, 2023
264
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.06 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3.  
  4. char grid[5][5];
  5. int pos[3][5];
  6.  
  7. string r, c;
  8. int n;
  9.  
  10. bool check() {
  11.  
  12.     for (int i = 0; i < n; i++) {
  13.         int tmp = 0;
  14.         while (grid[i][tmp] == '.') tmp++;
  15.         if (grid[i][tmp] != r[i]) return 0;
  16.     }
  17.     for (int i = 0; i < n; i++) {
  18.         int tmp = 0;
  19.         while (grid[tmp][i] == '.') tmp++;
  20.         if (grid[tmp][i] != c[i]) return 0;
  21.     }
  22.     return 1;
  23. }
  24.  
  25. bool func(int lv, int now) {
  26.     if (now == 3) {
  27.         if (check()) return 1;
  28.         return 0;
  29.     }
  30.     if (lv == n) {
  31.         return func(0, now + 1);
  32.     }
  33.     for (int i = 0; i < n; i++) {
  34.         if (grid[lv][i] != '.' || pos[now][i]) continue;
  35.         grid[lv][i] = 'A' + now;
  36.         pos[now][i] = 1;
  37.         if (func(lv + 1, now)) return 1;
  38.         grid[lv][i] = '.';
  39.         pos[now][i] = 0;
  40.     }
  41.     return 0;
  42. }
  43.  
  44. int main() {
  45.     cin >> n >> r >> c;
  46.  
  47.     for (int i = 0; i < n; i++)
  48.         for (int j = 0; j < n; j++)
  49.             grid[i][j] = '.';
  50.  
  51.     if (func(0, 0)) {
  52.         cout << "Yes\n";
  53.         for (int i = 0; i < n; i++) {
  54.             for (int j = 0; j < n; j++) {
  55.                 cout << grid[i][j];
  56.             }
  57.             cout << '\n';
  58.         }
  59.     }
  60.     else cout << "No\n";
  61. }
  62.  
Advertisement
Add Comment
Please, Sign In to add comment