야구 시즌
시간 제한1초메모리 제한512 MB
각 테스트마다 B≥1과 A=k·B를 정해 총 경기 수가 D 이하이면서 D에 가장 가깝도록 만들고, 불가능하면 -1을 출력한다.
문제
KOI 야구 리그에는 개의 지역리그가 있고, 각 지역리그에는 개의 팀이 있어서 리그 전체는 개의 팀으로 운영된다.
한 시즌에 각 팀은 같은 지역리그 팀뿐만 아니라 다른 지역리그 팀과도 경기를 치른다. 같은 지역리그 팀과의 팀당 경기 수는 로, 같은 지역리그에 속한 모든 팀에 대해 동일하다. 즉, 한 팀 는 같은 지역리그에 있는 모든 팀 ()와 각각 번 경기를 한다. 다른 지역리그 팀과의 팀당 경기 수는 로, 다른 지역리그에 속한 모든 팀에 대해 동일하다. 즉, 한 팀 는 다른 지역리그에 있는 모든 팀 ()와 각각 번 경기를 한다. 단, 와 는 (는 이상의 정수)를 만족해야 한다.
세계적 판데믹의 영향으로 올해 KOI 야구 리그는 시즌을 단축하기로 했다. 리그의 전체 경기 수가 개 이하이면서 에 가장 가깝도록 정한다. 따라서 같은 지역리그 팀과의 팀당 경기 수 와 다른 지역리그 팀과의 팀당 경기 수 를 새롭게 정해야 한다. 물론 를 만족해야 하고, 는 그대로 유지된다. 또한 각 팀은 다른 팀과 적어도 한 번은 경기를 해야 한다. 다시 말해 , 을 만족해야 한다.
예를 들어 , , 일 때, 경기 수 제한 이면 , 일 때 다른 지역리그 팀들과의 총 경기 수는 이고, 같은 지역리그 팀들과의 총 경기 수는 이다. 따라서 리그 전체 경기 수는 로 에 가장 가까운 새로운 경기 수이다.
지역리그의 개수 , 각 지역리그에 속하는 팀 수 , 를 만족하는 정수 , 새로운 경기 수 제한 가 주어질 때, 이하이면서 에 가장 가까운 리그 전체 경기 수를 계산해 출력하는 프로그램을 작성하시오.
입력
첫 번째 줄에 테스트 케이스의 개수 가 주어진다.
다음 개의 줄에 각 테스트 케이스의 정보가 한 줄에 하나씩 주어진다.
각 테스트 케이스는 하나의 줄에 네 개의 정수 , , , 가 공백 하나를 사이로 두고 주어진다.
출력
개의 각 줄에 각 테스트 케이스에 대해 리그 전체 경기 수를 출력한다.
조건을 만족하는 경기 수가 존재하지 않으면 을 출력한다.
제한
- 주어지는 모든 수는 정수이다.
- 하나의 입력 데이터에서 1개 이상 1 000개 이하의 테스트 케이스를 해결해야 한다.