숨바꼭질 2

현재 위치 N에서 이동 -1, +1, 2배 세 가지 행동으로 K에 도달하는 최소 시간과 그 최소 시간에 도달하는 서로 다른 행동 순서의 수를 구한다.

보통7BFS그래프동적 계획법아직 제출이 없습니다시간 제한2초메모리 제한512 MB

문제

수빈이는 동생과 숨바꼭질을 한다. 수빈이는 점 NN에 있고, 동생은 점 KK에 있다. 수빈이는 걷거나 순간이동을 한다. 수빈이의 위치가 XX일 때 걸으면 1초 후에 X1X-1 또는 X+1X+1로 이동하고, 순간이동을 하면 1초 후에 2X2X로 이동한다.

수빈이는 00보다 작은 위치나 100,000100{,}000보다 큰 위치로는 이동하지 않는다. 동생은 자리를 옮기지 않는다.

두 사람의 위치가 주어질 때, 수빈이가 동생을 찾는 가장 빠른 시간과 그 시간으로 찾는 방법의 수를 구하는 프로그램을 작성하시오. 방법은 수빈이가 한 행동의 순서로 구분한다. 예를 들어 위치 11에서는 걷기와 순간이동이 모두 위치 22로 이어지지만 행동이 다르므로 서로 다른 두 방법으로 센다.

입력

첫째 줄에 수빈이의 위치 NN과 동생의 위치 KK가 공백으로 구분되어 주어진다. 두 값은 정수이고 0N100,0000 \le N \le 100{,}000, 0K100,0000 \le K \le 100{,}000이다.

출력

첫째 줄에 수빈이가 동생을 찾는 가장 빠른 시간을 출력한다.

둘째 줄에 그 시간으로 동생을 찾는 방법의 수를 출력한다.