나무 심기

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

요약
가로 W, 세로 H인 격자 사각형 안에서 한 직선 위에 있고 점들 사이 거리가 모두 D 이상인 나무 T개의 배치 집합 개수를 1,000,000,000으로 나눈 나머지로 구합니다.
난이도

어려움10점 중 8점

유형
조합론, 기하, 정수론, 수학
정답자
아직 제출이 없습니다

문제

세준이는 가로 W, 세로 H인 직사각형 뒷마당에 T개의 나무를 심으려고 한다. 나무는 직사각형 안의 정수 좌표 격자점에만 심을 수 있으며, 경계 위의 점도 사용할 수 있다.

나무를 심는 방법은 다음 조건을 모두 만족해야 한다.

  1. 모든 나무는 서로 다른 정수 좌표에 놓인다.
  2. 모든 나무는 하나의 직선 위에 놓인다.
  3. 서로 다른 두 나무 사이의 유클리드 거리는 적어도 D이다.

W, H, T, D가 주어졌을 때 가능한 서로 다른 위치 집합의 수를 구한다. 두 방법은 심은 좌표의 집합이 다르면 서로 다르다.

입력

첫째 줄에 네 정수 T, W, H, D가 공백으로 구분되어 주어진다.

출력

첫째 줄에 서로 다른 방법의 수를 1,000,000,000으로 나눈 나머지를 출력한다.

제한

  • 1 ≤ T, D ≤ 50
  • 1 ≤ W, H ≤ 500

예제6

  1. 예제 1

    입력
    2 4 4 1
    
    예상 출력
    300
    
  2. 예제 2

    입력
    13 36 48 5
    
    예상 출력
    2
    
  3. 예제 3

    입력
    5 5 5 1
    
    예상 출력
    88
    
  4. 예제 4

    입력
    50 49 49 1
    
    예상 출력
    102
    
  5. 예제 5

    입력
    6 5 5 2
    
    예상 출력
    0
    
  6. 예제 6

    입력
    10 55 75 5
    
    예상 출력
    490260662