Advertisement
Guest User

Untitled

a guest
Oct 20th, 2019
99
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.86 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3.  
  4. const int N = 33;
  5. struct T {
  6. int x, y, z;
  7. };
  8. char a[6][N][N];
  9. int vst[N][N][N];
  10. char dc[7] = "FBLRUD";
  11. int dx[6] = {1, -1, 0, 0, 0, 0};
  12. int dy[6] = {0, 0, -1, 1, 0, 0};
  13. int dz[6] = {0, 0, 0, 0, -1, 1};
  14. char ch[N][N][N];
  15. T prv[N][N][N];
  16. int main() {
  17. int n;
  18. for(int qq = 1; ; qq++) {
  19. scanf("%d", &n);
  20.  
  21. if(n == 0) break;
  22. fgets(a[0][0], N, stdin);
  23. for(int d = 0; d < 6; d++) {
  24. for(int i(0); i < n; i++) {
  25. fgets(a[d][i], N, stdin);
  26. //scanf("%s", a[d][i]);
  27. cout << a[d][i] << endl;
  28. }
  29. }
  30. for(int i(0); i < n; i++) {
  31. for(int j(0); j < n; j++) {
  32. if(a[2][i][n - j - 1] == '#') a[0][i][j] = '#';
  33. if(a[3][i][n - j - 1] == '#') a[1][i][j] = '#';
  34. if(a[5][n - i - 1][j] == '#') a[4][i][j] = '#';
  35. }
  36. }
  37. int F = 0, R = 1, U = 4;
  38. vector<T> q;
  39. q.push_back({n - 2, n - 2, n - 2});
  40. for(int i(0); i < n; i++) for(int j(0); j < n; j++) for(int k(0); k < n; k++) {
  41. vst[i][j][k] = 0;
  42. }
  43. vst[n - 2][n - 2][n - 2] = true;
  44. for(int op(0); op < (int)q.size(); op++) {
  45. int x = q[op].x, y = q[op].y, z = q[op].z;
  46. for(int d(0); d < 6; d++) {
  47. int X = x + dx[d], Y = y + dy[d], Z = z + dz[d];
  48. if( a[F][n - Z - 1][n - Y - 1] == ' '
  49. && a[R][n - Z - 1][X] == ' '
  50. && a[U][n - X - 1][n - Y - 1] == ' ') {
  51. if(vst[X][Y][Z] == false) {
  52. vst[X][Y][Z] = 1;
  53. q.push_back({X, Y, Z});
  54. prv[X][Y][Z] = q[op];
  55. ch[X][Y][Z] = dc[d];
  56. }
  57. }
  58. }
  59. }
  60. string ans;
  61. int x = 1, y = 1, z = 1;
  62. while(!(x == n - 2 && y == n - 2 && z == n - 2)) {
  63. ans = ch[x][y][z] + ans;
  64. auto t = prv[x][y][z];
  65. x = t.x, y = t.y, z = t.z;
  66. }
  67. cout << ans << endl;
  68. }
  69. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement