ํ’€์ด


2์ฐจ์› ๋ฐฐ์—ด์„ ์ƒ์„ฑํ•œ ๋’ค ์ขŒํ‘œ๊ฐ’์„ ์„ค์ •ํ•ด์„œ ํƒ์ƒ‰์„ ํ†ตํ•ด ๊ตฌํ•ด์•ผํ•˜๋‚˜ ์‹ถ์—ˆ์ง€๋งŒ ์ƒ๊ฐ๋ณด๋‹ค ์‰ฌ์šด ์ ‘๊ทผ์ด ๊ฐ€๋Šฅํ–ˆ๋‹ค.

๋ชจ๋“  ์œ„์น˜์˜ ๊ฑฐ๋ฆฌ๋ฅผ [0, 0] ์„ ๊ธฐ์ค€์œผ๋กœ ์ ˆ๋Œ€๊ฐ’์œผ๋กœ ์ €์žฅํ•ด์ค€ ๋’ค ๊ฒฝ๋น„์˜ ์œ„์น˜์™€์˜ ์ฐจ๋ฅผ ๊ตฌํ•˜๋ฉด๋๋‹ค.

์ž…๋ ฅ๋ฐ›์€ ๊ฐ’๋“ค์„ ์กฐ๊ฑด์— ๋”ฐ๋ผ [0, 0] ๋ถ€ํ„ฐ์˜ ๊ฑฐ๋ฆฌ๋ฅผ ๊ณ„์‚ฐํ•œ ํ›„ distance ๋ฆฌ์ŠคํŠธ์— ์ €์žฅํ•œ๋‹ค.

์ €์žฅ๋œ ๋ฆฌ์ŠคํŠธ์—์„œ ์ œ์ผ ๋งˆ์ง€๋ง‰ ๊ฐ’์ธ ๊ฒฝ๋น„์˜ ์œ„์น˜๋ฅผ ๊ธฐ์ค€์œผ๋กœ ๊ฐ ์›์†Œ๋“ค์˜ ์ฐจ๋ฅผ ๊ตฌํ•ด์ค€๋‹ค.

์ด ๋•Œ ์‹œ๊ณ„๋ฐฉํ–ฅ๊ณผ ๋ฐ˜์‹œ๊ณ„๋ฐฉํ–ฅ์„ ๋ชจ๋‘ ๊ณ ๋ คํ•ด์•ผํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ „์ฒด ๋‘˜๋ ˆ์—์„œ ๊ฐ’์„ ๋นผ์ค€ ๊ฑฐ๋ฆฌ ์—ญ์‹œ ๊ณ ๋ คํ•˜์—ฌ ์ตœ์†Œ๊ฐ’์„ ans ์— ๋”ํ•ด์ฃผ๋ฉด๋œ๋‹ค.

์†Œ์Šค์ฝ”๋“œ


# ๊ฒฝ๋น„์›
import sys
input = sys.stdin.readline
 
def dist(i, j):
    if i == 1:
        return j
    elif i == 2:
        return w + h + w - j
    elif i == 3:
        return w + h + w + h - j
    else:
        return w + j
 
w, h = map(int, input().split())
distance = []
 
for _ in range(int(input())+1):
    i, j = map(int, input().split())
    distance.append(dist(i, j))
 
ans = 0
 
for d in distance[:-1]:
    cw = abs(distance[-1] - d)
    ccw = (w+h)*2 - cw
    ans += min(cw, ccw)
 
print(ans)

References