|
| 1 | +# https://www.acmicpc.net/problem/14499 |
| 2 | +# 4:27~6:00, 7:54~ |
| 3 | +from collections import deque |
| 4 | + |
| 5 | + |
| 6 | +def main(): |
| 7 | + n, m, x, y, k = map(int, input().split()) |
| 8 | + |
| 9 | + maps = [list(map(int, input().split())) for _ in range(n)] |
| 10 | + hor = deque([0, 0, 0, 0]) |
| 11 | + ver = deque([0, 0, 0, 0]) |
| 12 | + if maps[x][y] != 0: |
| 13 | + hor[0] = maps[x][y] |
| 14 | + ver[3] = hor[0] |
| 15 | + maps[x][y] = 0 |
| 16 | + |
| 17 | + moves = map(int, input().split()) |
| 18 | + |
| 19 | + pos = [x, y] |
| 20 | + for m in moves: |
| 21 | + move(pos, hor, ver, m, maps) |
| 22 | + |
| 23 | + |
| 24 | +off = (0, (0, 1), (0, -1), (-1, 0), (1, 0)) |
| 25 | + |
| 26 | + |
| 27 | +def move(pos, hor, ver, move, maps): |
| 28 | + dx, dy = off[move] |
| 29 | + x, y = pos |
| 30 | + if not (0 <= x + dx < len(maps) and 0 <= y + dy < len(maps[0])): |
| 31 | + return |
| 32 | + if move == 1 or move == 2: |
| 33 | + if move == 1: |
| 34 | + hor.appendleft(hor.pop()) |
| 35 | + if move == 2: |
| 36 | + hor.append(hor.popleft()) |
| 37 | + ver[1] = hor[2] |
| 38 | + ver.pop() |
| 39 | + ver.append(hor[0]) |
| 40 | + elif move == 3 or move == 4: |
| 41 | + if move == 3: |
| 42 | + ver.append(ver.popleft()) |
| 43 | + if move == 4: |
| 44 | + ver.appendleft(ver.pop()) |
| 45 | + hor[2] = ver[1] |
| 46 | + hor.popleft() |
| 47 | + hor.appendleft(ver[3]) |
| 48 | + |
| 49 | + if maps[x + dx][y + dy] == 0 and hor[0] != 0: |
| 50 | + maps[x + dx][y + dy] = hor[0] |
| 51 | + elif maps[x + dx][y + dy] != 0: |
| 52 | + hor[0] = maps[x + dx][y + dy] |
| 53 | + ver[3] = hor[0] |
| 54 | + maps[x + dx][y + dy] = 0 |
| 55 | + |
| 56 | + pos[0] += dx |
| 57 | + pos[1] += dy |
| 58 | + print(hor[2]) |
| 59 | + |
| 60 | + |
| 61 | +main() |
0 commit comments