동전 교환과 쿼리
시간 제한3초메모리 제한512 MB
각 질의마다 액면 c_i짜리 동전을 d_i개 이하로 사용해 합이 정확히 v가 되는 조합의 수를 센다. 답은 64비트 정수 범위다.
문제
어느 나라에서 쓰는 동전은 원, 원, 원, 원 네 종류다. 지갑에는 원 동전 개, 원 동전 개, 원 동전 개, 원 동전 개가 들어 있다. 이 동전으로 정확히 원을 만드는 방법이 몇 가지인지 세는 프로그램을 작성하시오.
같은 종류의 동전은 서로 구별하지 않는다. 종류별로 사용한 개수가 모두 같으면 같은 방법이다.
예를 들어 1원 동전 3개, 2원 동전 2개, 5원 동전 3개, 10원 동전 1개를 가지고 10원을 만드는 방법은 네 가지다.
입력
첫째 줄에 테스트 케이스의 개수 가 주어진다. ()
각 테스트 케이스의 첫째 줄에는 정수 , , , , 가 공백으로 구분되어 주어진다. (, )
이어지는 개의 줄에는 쿼리가 한 줄에 하나씩 주어진다. 각 쿼리는 정수 , , , , 로 이루어진다. ()
출력
각 쿼리마다 원 동전을 개 이하, 원 동전을 개 이하, 원 동전을 개 이하, 원 동전을 개 이하로 써서 정확히 원을 만드는 방법의 수를 한 줄에 하나씩 출력한다. 만드는 방법이 없으면 0을 출력한다. 답은 32비트 정수 범위를 넘을 수 있다.