달팽이 3

시간 제한2초메모리 제한128 MB

요약
M행 N열 격자를 시계방향 나선으로 채울 때 방향 전환 횟수와 끝나는 칸의 좌표를 시뮬레이션 없이 계산합니다.
난이도

보통10점 중 6점

유형
시뮬레이션, 수학, 구현
정답자
아직 제출이 없습니다

문제

M행 N열 표의 모든 칸을 달팽이 모양의 선으로 채우려고 한다.

○

위 그림은 M = 5, N = 3인 표를 나타낸다. 왼쪽 위 칸 ○에서 시작해 처음에는 오른쪽으로 선을 그린다. 선이 표의 바깥으로 나가거나 이미 지나간 칸으로 들어가 더 이상 앞으로 갈 수 없으면, 시계 방향으로 꺾어서 계속 그린다.

○→↘
↗↘↓
↑↓↓
↑끝↓
↖←↙

두 번째 그림은 선을 모두 그린 뒤의 모양이다. 선이 꺾인 칸은 대각선 기호로 표시했다. 표의 모든 칸이 채워질 때까지 선은 몇 번 꺾이며, 마지막에는 어느 칸에서 끝나는가?

입력

첫째 줄에 정수 M과 N이 공백으로 구분되어 주어진다. (2 ≤ M, N ≤ 2,100,000,000)

출력

첫째 줄에 표의 모든 칸이 채워질 때까지 선이 꺾이는 횟수를 출력한다. 둘째 줄에 선이 끝나는 칸의 좌표를 출력한다. 왼쪽 위 칸의 좌표는 (1, 1), 오른쪽 아래 칸의 좌표는 (M, N)이다.

예제1

  1. 예제 1

    입력
    5 3
    
    예상 출력
    5
    4 2