단위 분수 분할

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

요약
p/q를 최대 n개의 단위분수 합으로 나타내되 분모들의 곱이 a 이하가 되는 분해 방법의 수를 구합니다.
난이도

보통10점 중 7점

유형
백트래킹, 정수론, 재귀, 수학
정답자
아직 제출이 없습니다

문제

분자가 1이고 분모가 양의 정수인 분수를 단위 분수라고 한다. 양의 유리수 p/q를 유한 개의 단위 분수의 합으로 나타내면 p/q를 단위 분수로 분할했다고 한다.

분할에서는 항의 순서를 구분하지 않는다. 항의 순서만 다른 1/6 + 1/2와 1/2 + 1/6은 같은 분할이다. 같은 분모의 단위 분수를 여러 번 사용할 수 있다.

양의 정수 p, q, a, n이 주어질 때, 다음 조건을 모두 만족하는 p/q의 분할 개수를 구한다.

  1. 사용한 단위 분수의 개수는 n개 이하이다.
  2. 사용한 단위 분수들의 분모를 모두 곱한 값은 a 이하이다.

입력

첫째 줄에 양의 정수 p, q, a, n이 공백으로 구분되어 주어진다.

  • 1 ≤ p, q ≤ 800
  • 1 ≤ a ≤ 12000
  • 1 ≤ n ≤ 7

출력

조건을 만족하는 분할의 개수를 출력한다.

예제9

  1. 예제 1

    입력
    2 3 120 3
    
    예상 출력
    4
    
  2. 예제 2

    입력
    2 3 300 3
    
    예상 출력
    7
    
  3. 예제 3

    입력
    2 3 299 3
    
    예상 출력
    6
    
  4. 예제 4

    입력
    2 3 12 3
    
    예상 출력
    2
    
  5. 예제 5

    입력
    2 3 12000 7
    
    예상 출력
    42
    
  6. 예제 6

    입력
    54 795 12000 7
    
    예상 출력
    1
    
  7. 예제 7

    입력
    2 3 300 1
    
    예상 출력
    0
    
  8. 예제 8

    입력
    2 1 200 5
    
    예상 출력
    9
    
  9. 예제 9

    입력
    2 4 54 2
    
    예상 출력
    3