문제1349--블1록 놀이

1349: 블1록 놀이

[만든사람 : 39기 최준우]
시간제한 : 1.000 sec  메모리제한 : 256 MiB

문제 설명

다음과 같은 4개의 블록이 있다.




이들 중 몇 개의 블록이 선택되면, 그것들로 m*n의 격자판을 겹치지 않고 빈틈없이 채우는 가짓수를 구하는 프로그램을 작성하시오. 

적어도 하나의 블록은 반드시 주어지며, 각 블록은 회전 가능하다.



입력 설명

첫 번째 줄에 m, n의 값이 공백을 사이에 두고 입력된다.

두 번째 줄에 A, B, C, D의 사용 여부를 0 또는 1로 나타내는 길이 4의 문자열이 입력된다.

 

입력값의 범위

1<= m, n <= 10

출력 설명

주어진 블록들로 m*n 판을 채울 수 있는 가짓수를 10억 7로 나눈 나머지를 출력한다. 

주어진 블록들로 m*n 판을 채우는 것이 불가능하다면 -1을 출력한다.

입력 예시 Copy

2 2
1111

출력 예시 Copy

12

출처/분류