만드는 중입니다

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

돌로 교점 가두기

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

요약
N by M 격자 점 위에 돌을 가장 적게 놓아 돌이 있거나 돌을 피해서 가장자리까지 이동할 수 없는 점이 K개 이상이 되도록 합니다.
난이도

보통10점 중 7점

유형
기하, 수학, 완전 탐색
정답자
아직 제출이 없습니다

문제

가로선 NN개와 세로선 MM개로 이루어진 격자가 있다. 가로선과 세로선이 만나는 교점은 모두 N×MN \times M개다. 이 교점 중 몇 곳에 돌을 놓아 교점 KK개 이상을 가두려고 한다.

교점 하나는 다음 두 조건 중 하나를 만족하면 가둔 것이다.

  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≤1000N \times M \le 1000

출력

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

예제4

  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

    입력
    4
    1 10 7
    10 1 7
    2 6 12
    6 2 1
    
    예상 출력
    Case #1: 7
    Case #2: 7
    Case #3: 12
    Case #4: 1
    
  4. 예제 4

    입력
    4
    3 3 1
    3 3 2
    3 3 8
    3 3 9
    
    예상 출력
    Case #1: 1
    Case #2: 2
    Case #3: 7
    Case #4: 8