Advertisement
K_Y_M_bl_C

Untitled

Mar 8th, 2017
85
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.83 KB | None | 0 0
  1. int n;
  2. int a[3][3];
  3. int was[3][3];
  4. ll ans;
  5.  
  6. bool check(int x, int y)
  7. {
  8.     return x >= 0 && x < 3 && y >= 0 && y < 3;
  9. }
  10.  
  11. void gen(int x, int y, ll res)
  12. {
  13.     was[x][y] = 1;
  14.     res = res * 10 + a[x][y];
  15.     ans = max(res, ans);
  16.     if (check(x + 1, y) && !was[x + 1][y])
  17.         gen(x + 1, y, res), was[x + 1][y] = 0;
  18.     if (check(x - 1, y) && !was[x - 1][y])
  19.         gen(x - 1, y, res), was[x - 1][y] = 0;
  20.     if (check(x, y - 1) && !was[x][y - 1])
  21.         gen(x, y - 1, res), was[x][y - 1] = 0;
  22.     if (check(x, y + 1) && !was[x][y + 1])
  23.         gen(x, y + 1, res), was[x][y + 1] = 0;
  24. }
  25.  
  26. int main()
  27. {
  28.     n = 3;
  29.     for (int i = 0; i < n; ++i)
  30.         for (int j = 0; j < n; ++j)
  31.             cin >> a[i][j];
  32.     for (int i = 0; i < n; ++i)
  33.     {
  34.         for (int j = 0; j < n; ++j)
  35.         {
  36.             for (int i1 = 0; i1 < n; ++i1)
  37.                 for (int j1 = 0; j1 < n; ++j1)
  38.                     was[i1][j1] = 0;
  39.             gen(i, j, 0);
  40.         }
  41.     }
  42.     cout << ans;
  43.     return 0;
  44. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement