미생물 한 마리에서 시작해 H일 동안 나타날 수 있는 번식 패턴의 수를 센다. 각 날에 살아 있는 미생물이 낳는 자식 수의 합은 W 이하다.
어려움8동적 계획법조합론재귀수학면접 대비아직 제출이 없습니다시간 제한2초메모리 제한256 MBB와 C로 가득한 성적표를 보고 컴퓨터공학에는 재능이 없다고 판단한 윤영이는 전공을 바꿔 항공우주학과와 생물학과를 복수전공했고, 외계 생물 연구자로 크게 성공했다.
어느 행성에서 특이한 외계 미생물을 발견한 윤영이는 몇 마리를 연구소로 가져와 관찰했다. 연구 결과 이 미생물은 다음 성질이 있었다.
윤영이는 번식하는 모습이 재미있어서 미생물 한 마리만 실험실 용기에 담아 두었다. 이 용기에서 지나친 경쟁 없이 허용되는 자식 수의 총합은 W이고, 미생물은 곧 번식을 시작했다.
같은 날 살아 있는 미생물은 서로 구분한다. 하루의 번식 양상은 그날 살아 있는 미생물이 낳은 자식의 수를 미생물 순서대로 적은 수열이고, H일 동안의 번식 양상은 이런 수열 H개를 날짜 순서대로 늘어놓은 것이다. 하루라도 수열이 다르면 서로 다른 양상으로 센다.
미생물 한 마리에서 시작해 H일 동안 생길 수 있는 번식 양상의 수를 구하시오.
첫째 줄에 H와 W가 공백으로 구분되어 주어진다. 0≤H≤5, 1≤W≤200이다.
H일 동안 생길 수 있는 번식 양상의 수를 1,000,000,007로 나눈 나머지를 첫째 줄에 출력한다. 경우의 수가 매우 커질 수 있으므로 계산 중간값이 32비트 정수의 범위를 넘을 수 있다. 64비트 정수를 쓰는 편이 안전하다.
H=1, W=3이면 처음 미생물 한 마리가 자식을 1마리, 2마리, 3마리 낳는 세 가지 양상이 있다. 자식을 0마리 낳는 경우는 조건 3에 걸려 세지 않는다.
H=0이면 번식이 한 번도 일어나지 않으므로 양상은 빈 것 하나뿐이고, 답은 1이다.