https://www.acmicpc.net/problem/2564
M,N = map(int,input().split())
S = int(input())
S_list = []
for i in range(S):
P,A = map(int,input().split())
S_list.append((P,A))
Dong_P,Dong_A = map(int,input().split())
ans = 0
for i in S_list:
if Dong_P == 1:
dis = N+N+M+(M-Dong_A)
elif Dong_P == 2:
dis = N+Dong_A
elif Dong_P == 3:
dis = Dong_A
else:
dis = N+M+(N-Dong_A)
if i[0] == 1:
dis_i = N+N+M+(M-i[1])
elif i[0] == 2:
dis_i = N+i[1]
elif i[0] == 3:
dis_i = i[1]
else:
dis_i = N+M+(N-i[1])
len_T = 2*(N+M)
real_dis = abs(dis-dis_i)
if real_dis>=(N+M):
real_dis = len_T - real_dis
ans+=real_dis
print(ans)
A가 상점의 위치, B가 경비원의 위치라고 할때
특정 점(0,0)을 기준으로 한 방향으로의 거리를 측정한다. (파란색과 보라색)
그리고 두 거리의 차를 구하면 이동거리가 나오는데, 이 이동거리가 짧은 방향인지 긴 방향인지 알 수 없다.
그런데 전체 길이를 알고있으므로 우리가 구한 길이가 긴 방향이라고 해도 짧은 방향을 구할 수 있다.