만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

카르테시아 정복

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

요약
N×M 직사각형을 변의 비가 2:1인 직사각형 조각들로 채우되 매 단계 합집합이 직사각형이 되도록 하나씩 추가할 때, 조각 수의 최솟값과 최댓값을 구하는 문제입니다.
난이도

어려움10점 중 8점

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

문제

옛날 카르테시아 땅에는 직사각형 제국이 있었다. 제국은 크고 부유했으며, 자주 이웃을 정복해 영토를 넓혔다. 이 문명의 풍습 가운데 상당수는 오늘날 뜻을 알 수 없지만, 땅을 나누던 방식만은 기록으로 남아 있다.

제국의 영토는 여러 구역으로 나뉘어 있었고, 구역은 다음 세 조건을 언제나 지켰다.

  1. 제국이 다스리는 모든 땅은 정확히 하나의 구역에 속한다.
  2. 지도 위에서 각 구역의 경계는 직사각형이고, 긴 변의 길이는 짧은 변의 길이의 정확히 두 배이다.
  3. 구역의 두 변의 길이는 Ξ 단위로 재면 정수이다. Ξ는 직사각형 제국에서 쓰던 길이 단위이다.

제국은 처음 세워질 때 구역 하나로 이루어져 있었다. 그 뒤로는 이웃 땅을 정복해 구역을 늘렸고, 새 땅을 차지할 때마다 그 땅 전체를 새 구역 하나로 삼았다. 두 정복이 동시에 일어난 적은 없다. 국경이 바뀌는 방법은 새 구역을 더하는 것뿐이었고, 한 번 생긴 구역은 다시 나뉘거나 모양이 바뀌거나 다른 구역과 합쳐지지 않았다.

제국이 가장 중요하게 여긴 풍습은 정복이 끝날 때마다 영토 전체가 반드시 직사각형이어야 한다는 것이다. 영토 전체는 각 구역과 달리 두 변의 비가 2:12:1일 필요는 없다.

고고학자들은 어느 시점에 제국의 영토가 Ξ로 재어 N×MN \times M이었다는 사실을 밝혀냈다. 카르테시아는 무한히 넓은 평면이므로 NN과 MM이 아주 커도 이상하지 않다. 제국이 세워지고 넓어진 모든 경우를 생각할 때, 그 시점의 구역 수로 가능한 최솟값과 최댓값을 구하여라.

입력

첫째 줄에 두 정수 NN과 MM이 주어진다. (1≤N,M≤1081 \le N, M \le 10^8)

출력

첫째 줄에 구역 수의 최솟값과 최댓값을 공백으로 구분해 출력한다. N×MN \times M 제국을 만드는 건국과 정복 과정이 하나도 없으면 대신 -1 -1을 출력한다.

힌트

아래 그림은 10×610 \times 6 제국에서 구역 수가 최솟값 5가 되는 경우와 최댓값 8이 되는 경우를 어떻게 만드는지 보여 준다. 구역에 붙은 #1, #2, #3, ...은 구역이 더해진 순서이고, 괄호 안의 (k×2k)(k \times 2k) 또는 (2k×k)(2k \times k)는 그 구역의 크기이다.

예제2

  1. 예제 1

    입력
    10 6
    
    예상 출력
    5 8
    
  2. 예제 2

    입력
    1 1
    
    예상 출력
    -1 -1