아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

초콜릿과 나이트 게임

시간 제한1초메모리 제한1024 MB

요약
무한 격자에서 (X,Y) 또는 (Y,X)만큼 움직이는 ㅋ나이트가 갈 수 있는 서로 다른 칸의 최대 개수와 한 경로를 구한다.
난이도

보통10점 중 7점

유형
수학, 정수론, 구현
정답자
아직 제출이 없습니다

문제

코코는 체스를 좋아한다. 체스의 나이트의 움직임이 너무 단순하다고 생각한 코코는 "ㅋ나이트"라는 체스 말을 새로 만들었다. 나이트는 한 번 움직일 때 가로로 1칸, 세로로 2칸 움직이거나, 가로로 2칸, 세로로 1칸 움직일 수 있다. ㅋ나이트는 나이트의 확장판으로, 한 번에 가로로 XX칸, 세로로 YY칸 움직이거나, 가로로 YY칸, 세로로 XX칸 움직일 수 있다.

나이트 게임은 무한한 초콜릿 격자판에서 진행하는 1인용 게임이다. 매 턴마다 규칙에 맞게 나이트를 이동하고, 원래 나이트가 있던 칸의 초콜릿을 떼서 먹는다. 초콜릿이 없는 칸으로 나이트를 움직일 수는 없으며, 더 이상 나이트를 움직일 수 없게 되면 게임이 종료된다.

코코와 가위바위보를 해서 진 한별이에게 코코는 99% 초콜릿과 ㅋ나이트를 가져와서 나이트 게임을 시켰다. 99% 초콜릿을 잘 먹지 못하는 한별이를 위해, ㅋ나이트를 어떻게 움직이면 가장 빨리 게임을 끝낼 수 있는지 알려주자. ㅋ나이트는 (0,0)(0, 0)에서 시작한다.

입력

ㅋ나이트의 이동 규칙을 나타내는 XX와 YY의 값이 한 줄에 순서대로 주어진다.

출력

첫 줄에는 이동 횟수 KK를 출력한다. 다음 KK줄에는 ㅋ나이트를 옮길 좌표를 한 줄에 하나씩 순서대로 출력한다. 시작 위치인 (0,0)(0, 0)은 출력하지 않는다.

제한

  • 0≤X,Y≤1060 \le X, Y \le 10^6
  • XX와 YY가 모두 0인 입력은 주어지지 않는다.

예제1

  1. 예제 1

    입력
    1 1
    
    예상 출력
    7
    1 1
    2 0
    3 -1
    2 -2
    1 -3
    0 -2
    1 -1