풀이
- 거리 차이를 구하는 것이기 때문에, 한점을 기준으로 절대 거리를 구해서 빼주면 된다.
from sys import stdin
x,y = map(int, stdin.readline().split())
n = int(stdin.readline())
def dist_cal(idx, pos):
if idx == 1: #북
return pos
elif idx == 2: #남
return x + y + x - pos
elif idx == 3: #서
return 2 * (x + y) - pos
else :
return x + pos
pos = []
for _ in range(n + 1):
idx, p = map(int, stdin.readline().split())
pos.append(dist_cal(idx, p))
my_pos = pos[-1]
deci = (x + y) * 2
res = 0
for i in range(n):
clockwise = abs(my_pos - pos[i])
res += min(clockwise, deci - clockwise)
print(res)
반응형
'알고리즘 문제 > PS' 카테고리의 다른 글
BOJ 9019(DSLR) (0) | 2021.10.21 |
---|---|
KMP 알고리즘(문자열 비교) (0) | 2021.02.28 |
BOJ 9205(맥주 마시면서 걸어가기) (0) | 2020.12.23 |
BOJ 2578 (0) | 2020.08.09 |
BOJ 3055 (0) | 2020.08.08 |