인공 폴리네시아어 (라지)

자음 뒤에 항상 모음이 오도록 C개 자음과 V개 모음으로 길이 L인 단어를 세고 1e9+7로 나눈 나머지를 구합니다.

쉬움3동적 계획법조합론면접 대비아직 제출이 없습니다시간 제한5초메모리 제한512 MB

문제

우르술라는 인공어를 만드는 일을 좋아한다. 오늘은 실제 폴리네시아 언어에서 영감을 받은 언어를 만들기 시작했다. 지금까지 정한 규칙은 두 가지다.

  • 모든 단어는 글자로만 이루어진다. 글자는 자음이거나 모음이다.
  • 단어 안의 자음 뒤에는 반드시 모음이 바로 와야 한다.

예를 들어 모음이 a 하나뿐이고 자음이 h 하나뿐인 언어에서 a, aa, aha, aaha, haha는 올바른 단어지만 h, ahh, ahah, ahha는 올바른 단어가 아니다. 이 규칙은 자음 뒤에 자음이 오는 것을 막고, 단어가 자음으로 끝나는 것도 막는다.

우르술라의 새 언어에 서로 다른 자음이 CC개, 서로 다른 모음이 VV개 있다. 길이가 LL인 올바른 단어는 모두 몇 개인가? 답이 매우 커질 수 있으므로 소수 109+710^9+7로 나눈 나머지를 구한다.

입력

첫째 줄에 테스트 케이스의 개수 TT가 주어진다. 이어지는 TT개의 줄에 각각 세 정수 CC, VV, LL이 공백으로 구분되어 주어진다.

제한

  • 1T1001 \le T \le 100
  • 1C501 \le C \le 50
  • 1V501 \le V \le 50
  • 1L5001 \le L \le 500

출력

각 테스트 케이스마다 Case #x: y 형식으로 한 줄씩 출력한다. xx는 1부터 시작하는 테스트 케이스 번호이고, yy는 길이가 LL인 올바른 단어의 개수를 109+710^9+7로 나눈 나머지이다.

힌트

첫 번째 예제의 첫 테스트 케이스에서 모음이 a 하나, 자음이 h 하나라고 하자. 길이가 4인 올바른 단어는 aaaa, aaha, ahaa, haaa, haha의 다섯 개다.

같은 예제의 둘째 테스트 케이스에서 모음이 ae이고 자음이 h 하나라고 하자. 길이가 2인 올바른 단어는 aa, ae, ea, ee, ha, he의 여섯 개다.