컵 쌓기
면접 대비시간 제한1초메모리 제한1024 MB
각 종류의 컵을 무제한으로 쓸 수 있을 때, 높이 합이 정확히 H가 되는 쌓는 방법의 수를 10^9+7로 나눈 나머지로 구합니다.
- 난이도
쉬움10점 중 3점
- 유형
- 동적 계획법
- 정답자
- 아직 제출이 없습니다
문제
주식회사 푸앙의 추종자 잇창명은 푸앙에서 생산하는 종류의 컵을 가지고 있다. 이 회사의 컵은 정리하기 쉽도록 종류에 상관없이 입구 사이에 빈틈이 없게 포개어진다. 이 문제에서는 컵의 몸통을 제외하고 입구 부분만 생각한다.

잇창명은 가지고 있는 컵을 포개어 정리하다가, 입구 부분 높이의 합이 가 되도록 컵을 포갤 수 있는 경우의 수가 궁금해졌다. 각 종류의 컵은 무한히 많이 있으며, 각 종류 컵의 입구 높이는 단위 높이 의 양의 정수배이다. 컵은 입구가 위로 오도록 포갠다.
아래 그림처럼 입구 높이가 각각 , , , 인 컵 세트를 사용하는 경우를 보자.

위 네 종류의 컵으로 입구 부분의 높이가 이 되도록 쌓는 방법은 아래 그림 말고도 여러 가지가 있으며, 모든 경우의 수를 합하면 가지이다.

잇창명을 위해 컵을 포개는 경우의 수를 구하는 프로그램을 작성하라.
입력
첫 번째 줄에 과 가 주어진다.
두 번째 줄에 종류의 컵의 높이 , , , , 이 공백으로 구분되어 주어진다.
출력
입구 부분의 높이 합이 정확히 가 되도록 컵을 포개는 경우의 수를 ()로 나눈 나머지를 출력한다.
제한
- , 는 정수