직사각형 나누기
면접 대비시간 제한1초메모리 제한1024 MB
a×b 크기의 보드를 k번 잘라 정확히 m개의 직사각형을 만드는 가로 자르기 수 h와 세로 자르기 수 v를 구합니다. 가로 자르기가 적은 답을 고르고, 가능한 방법이 없으면 -1을 출력합니다.
문제
아냐는 새 보드게임 "격자 왕국"을 하고 있다.
크기가 인 직사각형 격자 판이 있다.
이 판을 세로 또는 가로로 자르기를 반복해 개의 직사각형으로 나눠야 한다. 직사각형의 크기가 같을 필요는 없다. 자르기는 총 정확히 번 해야 한다.
각 자르기는 판의 한쪽 끝에서 반대쪽 끝까지 이어지는 직선이다. 자르기는 칸과 칸 사이의 격자선을 따라서만 할 수 있다.
가로 자르기 횟수 ()와 세로 자르기 횟수 ()를 출력하라. 여러 방법이 가능하면 가로 자르기 횟수가 더 적은 방법을 출력한다. 요구한 방식으로 판을 자를 수 없으면 -1을 출력한다.
입력
첫 줄에 테스트 개수 ()가 정수 하나로 주어진다. 다음 개 줄에는 공백으로 구분된 정수 네 개 , , , 이 한 줄에 하나씩 주어진다. 각각 판의 높이, 너비, 자르기 횟수, 직사각형 개수이다(, , , ).
출력
각 테스트마다 요구한 방식으로 판을 자를 수 있으면 공백으로 구분된 정수 와 를 출력한다. 는 가로 자르기 횟수, 는 세로 자르기 횟수이다. 자를 수 없으면 -1을 출력한다.
힌트
예시에는 테스트가 세 개 있다.
- 첫 번째 테스트에서는 아래 그림과 같이 판을 자를 수 있다.

첫 번째 테스트의 그림: , , , .
-
두 번째 테스트에서는 요구한 방식으로 판을 자를 수 없다.
-
세 번째 테스트에서는 아래 그림과 같이 판을 자를 수 있다.

세 번째 테스트의 그림: , , , .