Googlander (Small)

시간 제한5초메모리 제한512 MB

요약
R행 C열 격자에서 직진이나 우회전으로만 걸으며 강제 이동을 따르다가 막힐 때까지 가능한 모든 경로 수를 셉니다.
난이도

보통10점 중 5점

유형
백트래킹, 시뮬레이션
정답자
아직 제출이 없습니다

문제

에릭 구글랜더는 RR행 CC열 격자 모양 무대 위를 걸어 다니며 공연하는 패션 모델이다. 맨 왼쪽 맨 아래 칸에서 무대의 위쪽 가장자리를 바라본 채 시작하고, 이동을 여러 번 하며 공연한다. 구글랜더가 아는 이동은 다음 두 가지뿐이다.

  1. 지금 바라보는 방향으로 한 칸 전진한다.
  2. 오른쪽으로 90도 회전한 다음, 회전한 뒤 바라보는 방향으로 한 칸 전진한다.

구글랜더는 왼쪽으로 90도 회전하는 법을 모른다.

어떤 이동이 구글랜더를 무대 밖으로 내보내거나 이미 지나온 칸으로 데려간다면, 그 이동은 촌스럽다. 두 이동이 모두 촌스럽지 않은 자리에서는 앞선 선택과 무관하게 둘 중 하나를 마음대로 고를 수 있지만, 반드시 하나를 골라야 한다. 한쪽만 촌스럽다면 반드시 나머지 하나를 해야 한다. 두 이동이 모두 촌스러워지는 순간 공연은 그 자리에서 끝나고 구글랜더는 더 움직이지 않는다. 구글랜더는 공연을 일찍 멈출 수 없고, 두 이동이 모두 촌스러워질 때까지 계속 움직여야 한다.

구글랜더가 걸을 수 있는 경로는 몇 가지인가? 두 경로는 같은 칸을 같은 순서로 지날 때만 같은 경로다.

입력

첫 줄에 테스트 케이스의 수 TT가 주어진다. 다음 TT개의 줄에 두 정수 RR과 CC가 공백 하나로 구분되어 주어진다.

제한

  • 1≤T≤1001 \le T \le 100
  • 1≤R,C≤101 \le R, C \le 10
  • 답은 항상 32비트 부호 있는 정수 범위에 들어간다.

출력

각 테스트 케이스마다 Case #x: y 형식으로 한 줄씩 출력한다. xx는 1부터 시작하는 테스트 케이스 번호이고, yy는 구글랜더가 걸을 수 있는 서로 다른 경로의 수이다.

힌트

R=1R = 1, C=1C = 1이면 구글랜더는 어떤 이동도 할 수 없다. 유일한 경로는 시작 칸 하나로 이루어진 경로다.

R=1R = 1, C=3C = 3이면 앞으로 한 칸 가는 이동은 무대 밖으로 나가므로 촌스럽고, 오른쪽으로 돌아 한 칸 가는 이동만 할 수 있다. 그렇게 움직이고 나면 오른쪽으로 돌아 전진하는 이동이 촌스러워지므로 앞으로 한 칸 전진한다. 그다음에는 두 이동이 모두 촌스러워 공연이 끝난다. 가능한 경로는 이 하나뿐이다.

R=3R = 3, C=3C = 3일 때 가능한 경로는 다음 여섯 가지다.

3행 3열 무대에서 가능한 여섯 가지 경로

예제3

  1. 예제 1

    입력
    3
    1 1
    1 3
    3 3
    
    예상 출력
    Case #1: 1
    Case #2: 1
    Case #3: 6
    
  2. 예제 2

    입력
    1
    10 10
    
    예상 출력
    Case #1: 48620
    
  3. 예제 3

    입력
    5
    1 1
    1 10
    10 1
    2 2
    10 10
    
    예상 출력
    Case #1: 1
    Case #2: 1
    Case #3: 1
    Case #4: 2
    Case #5: 48620