46번 - 초콜릿과 나이트 게임
스페셜 저지시간 제한1 초
메모리 제한1024 MB
제출8
정답2
맞힌 사람2
정답 비율25.00%
문제
코코는 체스를 좋아한다. 체스의 나이트의 움직임이 너무 단순하다고 생각한 코코는 "ㅋ나이트"라는 체스 말을 새로 만들었다. 나이트는 한 번 움직일 때 가로로 1칸, 세로로 2칸 움직이거나, 가로로 2칸, 세로로 1칸 움직일 수 있다. ㅋ나이트는 나이트의 확장판으로, 한 번에 가로로 $X$칸, 세로로 $Y$칸 움직이거나, 가로로 $Y$칸, 세로로 $X$칸 움직일 수 있다.
나이트 게임은 무한한 초콜릿 격자판에서 진행하는 1인용 게임이다. 매 턴마다 규칙에 맞게 나이트를 이동하고, 원래 나이트가 있던 칸의 초콜릿을 떼서 먹는다. 초콜릿이 없는 칸으로 나이트를 움직일 수는 없으며, 더 이상 나이트를 움직일 수 없게 되면 게임이 종료된다.
코코와 가위바위보에서 진 한별이에게 코코는 99\% 초콜릿과 ㅋ나이트를 가져와서 나이트 게임을 시켰다. 99\% 초콜릿을 잘 먹지 못하는 한별이를 위해, 어떻게 움직이면 가장 빨리 게임을 끝낼 수 있는지 알려주자. ㅋ나이트는 $(0, 0)$에서 시작한다.
입력
ㅋ나이트의 이동 규칙을 나타내는 $X$와 $Y$의 값이 한 줄에 순서대로 주어진다. ($0 \le X, Y \le 10^6$)
$X$와 $Y$가 모두 $0$인 입력은 주어지지 않는다.
출력
첫 줄에는 이동 횟수 $K$를 출력한다. 다음 $K$줄에는 ㅋ나이트를 옮길 좌표를 한 줄에 하나씩 순서대로 출력한다. 시작 위치인 $(0, 0)$은 출력하지 않는다.
예제 1
예제 입력 1
1 1
예제 출력 1
7 1 1 2 0 3 -1 2 -2 1 -3 0 -2 1 -1
문제 정보
| 출처 | event > BOJ User Contest > 초콜릿컵 > 제1회 초콜릿컵 > B |
|---|---|
| 출제자 | bubbler |
| 검수자 | - |