시간 제한 | 메모리 제한 | 제출 | 정답 | 맞힌 사람 | 정답 비율 |
---|---|---|---|---|---|
2 초 | 128 MB | 220 | 41 | 35 | 33.019% |
바이너리 파워 비숍이 (x, y)에 있다면, (x + 2k, y + 2k), (x + 2k, y - 2k), (x - 2k, y + 2k), (x - 2k, y - 2k) 로 이동할 수 있으며, k는 음이 아닌 정수이다. 한 번 움직일 때 사용한 k는 다시 한 번 사용할 수 없다.
바이너리 파워 비숍이 (0, 0)에서 (x, y)로 이동하려고 한다. 이때, 방문하는 칸을 최소로 하는 프로그램을 작성하시오.
체스판의 크기는 무한대이고, 음수 좌표로도 방문할 수 있다.
첫째 줄에 바이너리 파워 비숍이 가고자하는 위치인 x와 y가 공백을 사이에 두고 주어진다. 두 수는 100,000,000보다 작거나 같은 자연수이다.
바이너리 파워 비숍이 (x, y)까지 이동할 때 방문하는 칸의 최솟값을 첫째 줄에 출력한다. 둘째 줄부터 차례대로 바이너리 파워 비숍이 거친 칸을 출력한다. 만약 이동할 수 없으면 첫째 줄에 -1을 출력한다. 방문하는 좌표를 출력할 때는, x,y 형식으로 출력해야 한다. 만약 가능한 경우의 수가 여러개이면 아무것이나 출력해도 된다.
8 24
3 0,0 -8,8 8,24
16 16
2 0,0 16,16
11 22
-1
123 321
9 0,0 -128,128 -112,112 -104,104 -100,100 102,98 -101,97 -133,65 123,321