해당 문제는 상점과 본인의 위치를 비교해 구현할 수 있는 모든 경우의 수를 다 계산해서 코드화 해야 하는 문제였다. 처음 문제를 접했을 때 직선 거리와 직각 삼각형을 활용해 문제를 풀려고 했으나 본인의 위치가 확정적이지 않기 때문에 풀 수 없음을 이해하고 다음과 같은 방법으로 문제를 풀었다.
row, col = map(int, input().split())
ea = int(input())
lst = [list(map(int,input().split())) for _ in range(ea)]
my = list(map(int,input().split()))
ans = 0
for x in lst:
if my[0] == 1:
if x[0] == 1:
dist = abs(x[1] - my[1])
elif x[0] == 2:
dist = col + min(x[1] + my[1], 2 * row - x[1] - my[1])
elif x[0] == 3:
dist = x[1] + my[1]
elif x[0] == 4:
dist = (row - my[1]) + x[1]
elif my[0] == 2:
if x[0] == 1:
dist = col + min(x[1] + my[1], 2 * row - x[1] - my[1])
elif x[0] == 2:
dist = abs(x[1] - my[1])
elif x[0] == 3:
dist = (col - x[1]) + my[1]
elif x[0] == 4:
dist = (col - x[1]) + (row - my[1])
elif my[0] == 3:
if x[0] == 1:
dist = x[1] + my[1]
elif x[0] == 2:
dist = x[1] + (col - my[1])
elif x[0] == 3:
dist = abs(x[1] - my[1])
elif x[0] == 4:
dist = row + min(x[1] + my[1], 2 * col - x[1] - my[1])
else:
if x[0] == 1:
dist = (row - x[1]) + my[1]
elif x[0] == 2:
dist = (row - x[1]) + (col - my[1])
elif x[0] == 3:
dist = row + min(x[1] + my[1], 2 * col - x[1] - my[1])
elif x[0] == 4:
dist = abs(x[1] - my[1])
ans += dist
print(ans)