Informatica Online Judge

  마우스 [1196 / 04AC]

Time Limit(Test case) : 1000(ms)
Number of users who solved : 58   Total Tried : 289


The Champion of this Problem (C++) : gs15120 - 0ms / 1181byte
My Best Submission (C++) : N/A

[CCC 2005]

Background

컴퓨터의 마우스는 화면에서 커서를 이리저리 이동시켜준다.

화면의 왼쪽 아래의 좌표를 (0, 0)이라고 할 때, 화면의 모든 좌표는 (x, y)(0<= x <=c <=10000 && 0<= y <=r <=10000)로 표현할 수 있는데, 화면의 가장 오른쪽 위 좌표는 (c, r), 가장 오른쪽 아래 좌표는 (c, 0), 가장 왼쪽 위 좌표는 (0, r)이다.

마우스를 움직이면 커서가 x축 방향으로 움직여야하는 a값과 커서가 y축 방향으로 움직여야하는 b값을 묶어, 현재 상태에서 움직여야하는 상대 좌표 값 (a, b)를 전송한다. (a, b 값은 -, 0, + 값이 모두 가능하다.)

처음에 마우스가 놓여있는 좌표를 (0, 0)이라고 할 때, 실제 마우스에서 상대 좌표가 들어올 때마다 커서를 새로운 위치로 옮겨야 한다.

만약, 마우스의 커서가 화면의 경계에 닿게 되면 더 이상 이동하지 못하고 멈춰있게 된다.

예를 들어 (30, 40) 상태에서 이동해야할 상대 좌표 값 (-100, -10)이 입력되면 (0, 30)으로 이동하게 되는 것이다.

화면의 크기 (c, r)이고 처음 마우스 커서가 (0, 0)에 있을 때, 마우스가 움직여야할 상대 좌표 값(x, y)이 입력되면, 커서의 위치를 계속적으로 출력하는 프로그램을 작성해 보자.

Input

첫 줄에 화면의 크기 (c, r)이 공백을 두고 입력된다.

움직여야 할 상대 좌표가 계속 입력된다.(최대 10세트)

Output

커서의 좌표를 한 줄에 하나씩 출력한다.

0 0이 입력되면 "end"(따옴표 제외)를 출력하고 종료한다.

IO Example

입력1
100 200
10 40
-5 15
30 -30
0 0

출력1
10 40
5 55
35 25
end

입력2
30 40
30 40
-100 -10
0 0

출력2
30 40
0 30
end

Submit : [C/C++] | [C++11] | [Obj-C] | [Java] | [Python]
Prob Analysis : [Problem Statistics] | [Solution]