만드는 중입니다

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

비 오는 날

시간 제한1초메모리 제한1024 MB

요약
학생 N명, 우산 M개, 우산당 최대 인원 K명이 주어질 때 모든 학생이 두 건물 사이를 건너는 최소 연산 횟수를 구합니다. 불가능하면 -1을 출력합니다.
난이도

보통10점 중 5점

유형
BFS, 시뮬레이션
정답자
아직 제출이 없습니다

문제

비 오는 날 NN명의 학생이 창의인재관에서 융합인재관으로 건너가려고 한다. 창의인재관에는 MM개의 우산이 있고, 융합인재관에는 우산이 없다. 한 우산은 한 번에 최대 KK명까지 쓸 수 있다. 학생들은 다음 시행을 반복해 건너갈 수 있다.

  • 한 건물에 있는 학생 중 몇 명이 우산을 쓰고 다른 건물로 넘어간다. 이때, 모두가 같은 우산을 쓸 필요는 없다.
  • 아무도 쓰고 있지 않은 우산은 학생들이 제한 없이 들고 갈 수 있다. 예를 들어, 1명의 학생이 1개의 우산을 쓰고 3개의 우산을 들고 가는 것이 가능하다.

모든 학생이 비를 맞지 않고 융합인재관으로 건너갈 수 있는지 판별하여라. 건너갈 수 있다면, 모든 학생이 건너가기 위한 시행의 최소 횟수를 구하여라. 단, 모든 우산을 융합인재관으로 가지고 올 필요는 없다.

엄밀히 말해, 4개의 정수로 이루어진 순서쌍 (a,b,c,d)(a,b,c,d)가 주어진다. 이는 현재 창의인재관에 있는 학생이 aa명, 창의인재관에 있는 우산이 bb개, 융합인재관에 있는 학생이 cc명, 융합인재관에 있는 우산이 dd개라는 뜻이다. 초기에 a=Na=N, b=Mb=M, c=d=0c=d=0이며, 최소 횟수의 시행을 통해 c=Nc=N으로 만들어야 한다. 시행은 다음 행동 중 하나를 하는 것으로 정의된다.

  • 두 양의 정수 xx, yy를 선택하여 순서쌍 (a,b,c,d)(a,b,c,d)를 (a−x,b−y,c+x,d+y)(a-x,b-y,c+x,d+y)로 바꾼다. 이는 창의인재관에서 xx명의 학생이 yy개의 우산을 이용하여 융합인재관으로 이동한다는 뜻이다. 이때, 0<x≤a0 < x \le a와 0<y≤b0 < y \le b와 x≤Kyx \le Ky이어야 한다.
  • 두 양의 정수 zz, ww를 선택하여 순서쌍 (a,b,c,d)(a,b,c,d)를 (a+z,b+w,c−z,d−w)(a+z,b+w,c-z,d-w)로 바꾼다. 이는 융합인재관에서 zz명의 학생이 ww개의 우산을 이용하여 창의인재관으로 이동한다는 뜻이다. 이때, 0<z≤c0 < z \le c와 0<w≤d0 < w \le d와 z≤Kwz \le Kw이어야 한다.

입력

첫 번째 줄에 테스트 케이스의 개수 TT가 주어진다.

다음 TT개의 줄 중 ii번째 줄에는 ii번째 테스트 케이스를 나타내는 세 정수 NN, MM, KK가 띄어쓰기를 사이에 두고 주어진다.

출력

TT개의 줄에 걸쳐, ii번째 줄에는 ii번째 테스트 케이스의 답에 해당하는 정수 1개를 출력한다. 모든 학생이 융합인재관으로 건너갈 수 있다면 모든 학생이 건너가기 위한 시행의 최소 횟수를 출력하고, 그렇지 않다면 -1을 출력한다.

제한

  • 1≤T≤1 0001\le T\le 1\, 000
  • 1≤i≤T1\le i\le T
  • 1≤N,M,K≤101\le N,M,K\le 10

예제1

  1. 예제 1

    입력
    3
    7 2 2
    2 1 1
    1 3 5
    
    예상 출력
    3
    -1
    1