"""
출처: 프로그래머스,
https://school.programmers.co.kr/learn/courses/30/lessons/169198
"""
# 풀이 과정
def solution(m, n, startX, startY, balls):
result = []
for x, y in balls:
check = []
# 아래벽
if startY >= y and startX == x:
pass
else:
d_1 = ((abs(startX - x) ** 2 + abs(-startY - y) ** 2))
check.append(d_1)
# 왼쪽벽
if startX >= x and startY == y:
pass
else:
d_2 = ((abs(-startX - x) ** 2 + abs(startY - y) ** 2))
check.append(d_2)
# 위쪽벽
if startY <= y and startX == x:
pass
else:
d_3 = ((abs(startX - x) ** 2 + abs(2 * n - startY - y) ** 2))
check.append(d_3)
# 오른쪽벽
if startX <= x and startY == y:
pass
else:
d_4 = ((abs(2 * m - startX - x) ** 2 + abs(startY - y) ** 2))
check.append(d_4)
# 왼쪽 사이드
d_5 = ((abs(-startX - x) ** 2 + abs(-startY - y) ** 2))
check.append(d_5)
# 왼쪽 위 사이드
d_6 = ((abs(-startX - x) ** 2 + abs(2 * n - startY - y) ** 2))
check.append(d_6)
# 오른쪽 위 사이드
d_7 = ((abs(2 * m - startX - x) ** 2 + abs(2 * n - startY - y) ** 2))
check.append(d_7)
# 오른쪽 아래 사이드
d_8 = ((abs(2 * m - startX - x) ** 2 + abs(-startY - y) ** 2))
check.append(d_8)
result.append(min(check))
return result