https://www.acmicpc.net/problem/6877
공부 날짜 : 2023.01.20
정답 참조 여부 : X
모니터의 크기가 주어지고 마우스 커서가 (0,0)에서 시작해 마우스의 입력대로 마우스 커서가 움직인다. 움직이던 중, 마우스 커서가 모니터 화면을 벗어나면 더 이상 움직이지않고 벽면에 있게 될 때 마우스 입력의 결과를 출력하는 문제이다.
좀 신선했다. koosaga님이 최근 푼 문제중에 시간이 0ms이길래 무슨 문제지 하고 봤더니 영어로된 문제였다 하지만, 난이도 정보가 없고 정답 4개, 정답률 100%인걸봐서 쉬운 문제로 보여서 바로 번역기를 돌려봤더니 숨돌리기용으로 풀기 좋을 만큼 쉬웠다. 난이도를 매기면 브론즈 1~실버 5?
그냥 좌표를 오더대로 옮기고, 범위 벗어나면 갱신해주니까 정답으로 나왔다.
그냥 좌표를 그대로 옮겨도 될거 같긴한데, 혹시나 하고 nx로 갱신시킨뒤 x에 입력해주는 방식으로 작성했지만, 제출하고 보니 굳이 그런작업은 필요없어 보였다.
import sys
input = sys.stdin.readline
###################################################
c, r = map(int, input().split())
n = 0
order = []
x = y = 0
while True:
n += 1
dx, dy = map(int, input().split())
if dx == 0 and dy == 0:
break
order.append((dx, dy,))
for dx, dy in order:
nx = x + dx
ny = y + dy
if nx > c:
nx = c
elif nx < 0:
nx = 0
if ny > r:
ny = r
elif ny < 0:
ny = 0
x, y = nx, ny
print(x, y)