소들의 화폐 시스템

아직 제출이 없습니다시간 제한1초메모리 제한128 MB

문제

소들은 자기들만의 정부를 세웠을 뿐 아니라, 자기들만의 화폐 시스템까지 만들기로 했다. 반항적인 소들은 동전의 액면가에 관심이 많다. 전통적으로 동전은 1, 5, 10, 20 또는 25, 50, 100단위처럼 만들어지며, 때로는 2단위 동전이 끼어들기도 한다.

소들은 주어진 화폐 시스템으로 특정 금액을 만드는 서로 다른 방법이 몇 가지인지 알고 싶어 한다. 각 동전은 원하는 만큼 여러 번 사용할 수 있고, 사용한 동전의 순서만 다른 방법은 같은 것으로 본다. 예를 들어 액면가 집합 ${1, 2, 5, 10, \dots}$ 을 사용하면 18단위를 여러 방법으로 만들 수 있는데, $18 \times 1$, $9 \times 2$, $8 \times 2 + 2 \times 1$, $3 \times 5 + 2 + 1$ 등이 그 예이다.

$V$ 종류의 동전 액면가로 금액 $N$ 을 만드는 방법의 수를 구하는 프로그램을 작성하라. 여기서 $1 \le N \le 10000$, $1 \le V \le 25$ 이다. 정답은 부호 있는 64비트 정수(C/C++의 long long, Java의 long) 범위 안에 들어옴이 보장된다.

입력

  • 첫째 줄: 공백으로 구분된 두 정수 $V$ 와 $N$
  • 둘째 줄부터 $V+1$ 번째 줄까지: 각 줄에 사용할 수 있는 동전 액면가가 하나씩 주어진다

출력

  • 첫째 줄: $V$ 종류의 동전으로 금액 $N$ 을 만드는 방법의 총 개수를 한 줄에 출력한다