만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

돌로 가두기

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

요약
최대 20칸인 N행 M열 격자에서 돌을 가장 적게 놓아 K개 이상 지점을 경계에서 끊어지게 둘러쌉니다.
난이도

보통10점 중 4점

유형
완전 탐색, BFS, 비트 연산
정답자
아직 제출이 없습니다

문제

가로선 NN개와 세로선 MM개로 이루어진 격자가 있다. 가로선과 세로선이 만나는 교차점은 모두 N×MN \times M개이고, 각 교차점에는 돌을 하나까지 놓을 수 있다.

교차점 하나가 다음 두 조건 중 하나를 만족하면 그 점은 갇힌 점이다.

  1. 그 점에 돌이 놓여 있다.
  2. 그 점에서 출발해 격자선을 따라 이동할 때, 빈 교차점만 지나서는 격자 경계의 빈 교차점에 도달할 수 없다.

이동은 격자선을 따라 이웃한 교차점으로 한 칸씩만 한다. 출발점, 지나는 점, 도착점이 모두 비어 있어야 그 경로를 쓸 수 있다. 따라서 경계 위에 있는 빈 교차점은 갇힌 점이 아니다.

갇힌 점이 KK개 이상이 되도록 돌을 놓으려고 한다. 필요한 돌의 최소 개수를 구하라.

예를 들어 4×54 \times 5 격자에서 점 8개를 가두려면 돌이 적어도 6개 필요하다. 아래 그림은 그런 배치 중 하나이고, 갇힌 점을 x로 표시했다.

입력

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

제한

  • 1≤T≤1001 \le T \le 100
  • 1≤N1 \le N
  • 1≤M1 \le M
  • 1≤K≤N×M1 \le K \le N \times M
  • N×M≤20N \times M \le 20

출력

각 테스트 케이스마다 Case #x: y 형식으로 한 줄씩 출력한다. xx는 1부터 시작하는 테스트 케이스 번호이고, yy는 필요한 돌의 최소 개수이다.

예제5

  1. 예제 1

    입력
    2
    4 5 8
    3 5 11
    
    예상 출력
    Case #1: 6
    Case #2: 8
    
  2. 예제 2

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

    입력
    6
    1 20 1
    1 20 20
    20 1 13
    1 2 2
    2 1 1
    1 7 4
    
    예상 출력
    Case #1: 1
    Case #2: 20
    Case #3: 13
    Case #4: 2
    Case #5: 1
    Case #6: 4
    
  4. 예제 4

    입력
    9
    3 3 1
    3 3 2
    3 3 3
    3 3 4
    3 3 5
    3 3 6
    3 3 7
    3 3 8
    3 3 9
    
    예상 출력
    Case #1: 1
    Case #2: 2
    Case #3: 3
    Case #4: 4
    Case #5: 4
    Case #6: 5
    Case #7: 6
    Case #8: 7
    Case #9: 8
    
  5. 예제 5

    입력
    20
    4 5 1
    4 5 2
    4 5 3
    4 5 4
    4 5 5
    4 5 6
    4 5 7
    4 5 8
    4 5 9
    4 5 10
    4 5 11
    4 5 12
    4 5 13
    4 5 14
    4 5 15
    4 5 16
    4 5 17
    4 5 18
    4 5 19
    4 5 20
    
    예상 출력
    Case #1: 1
    Case #2: 2
    Case #3: 3
    Case #4: 4
    Case #5: 4
    Case #6: 5
    Case #7: 6
    Case #8: 6
    Case #9: 7
    Case #10: 7
    Case #11: 8
    Case #12: 8
    Case #13: 9
    Case #14: 9
    Case #15: 10
    Case #16: 10
    Case #17: 11
    Case #18: 12
    Case #19: 13
    Case #20: 14