아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

야구 시즌

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

요약
각 테스트마다 B≥1과 A=k·B를 정해 총 경기 수가 D 이하이면서 D에 가장 가깝도록 만들고, 불가능하면 -1을 출력한다.
난이도

보통10점 중 4점

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

문제

KOI 야구 리그에는 NN개의 지역리그가 있고, 각 지역리그에는 MM개의 팀이 있어서 리그 전체는 N×MN \times M개의 팀으로 운영된다.

한 시즌에 각 팀은 같은 지역리그 팀뿐만 아니라 다른 지역리그 팀과도 경기를 치른다. 같은 지역리그 팀과의 팀당 경기 수는 AA로, 같은 지역리그에 속한 모든 팀에 대해 동일하다. 즉, 한 팀 XX는 같은 지역리그에 있는 모든 팀 YY (≠X\ne X)와 각각 AA번 경기를 한다. 다른 지역리그 팀과의 팀당 경기 수는 BB로, 다른 지역리그에 속한 모든 팀에 대해 동일하다. 즉, 한 팀 XX는 다른 지역리그에 있는 모든 팀 ZZ(≠X\ne X)와 각각 BB번 경기를 한다. 단, AA와 BB는 A=k×BA = k \times B (kk는 11 이상의 정수)를 만족해야 한다.

세계적 판데믹의 영향으로 올해 KOI 야구 리그는 시즌을 단축하기로 했다. 리그의 전체 경기 수가 DD개 이하이면서 DD에 가장 가깝도록 정한다. 따라서 같은 지역리그 팀과의 팀당 경기 수 AA와 다른 지역리그 팀과의 팀당 경기 수 BB를 새롭게 정해야 한다. 물론 A=k×BA = k \times B를 만족해야 하고, kk는 그대로 유지된다. 또한 각 팀은 다른 팀과 적어도 한 번은 경기를 해야 한다. 다시 말해 A≥1A \ge 1, B≥1B \ge 1을 만족해야 한다.

예를 들어 N=2N = 2, M=3M = 3, k=3k = 3일 때, 경기 수 제한 D=60D = 60이면 A=6A = 6, B=2B = 2일 때 다른 지역리그 팀들과의 총 경기 수는 1818이고, 같은 지역리그 팀들과의 총 경기 수는 3636이다. 따라서 리그 전체 경기 수는 5454로 DD에 가장 가까운 새로운 경기 수이다.

지역리그의 개수 NN, 각 지역리그에 속하는 팀 수 MM, A=k×BA = k \times B를 만족하는 정수 kk, 새로운 경기 수 제한 DD가 주어질 때, DD 이하이면서 DD에 가장 가까운 리그 전체 경기 수를 계산해 출력하는 프로그램을 작성하시오.

입력

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

다음 TT개의 줄에 각 테스트 케이스의 정보가 한 줄에 하나씩 주어진다.

각 테스트 케이스는 하나의 줄에 네 개의 정수 NN, MM, kk, DD가 공백 하나를 사이로 두고 주어진다.

출력

TT개의 각 줄에 각 테스트 케이스에 대해 리그 전체 경기 수를 출력한다.

조건을 만족하는 경기 수가 존재하지 않으면 −1-1을 출력한다.

제한

  • 주어지는 모든 수는 정수이다.
  • 하나의 입력 데이터에서 1개 이상 1 000개 이하의 테스트 케이스를 해결해야 한다.
  • 2≤N,M≤1002 \le N, M \le 100
  • 1≤k≤1001 \le k \le 100
  • 1≤D≤1 000 000 0001 \le D \le 1\,000\,000\,000

예제1

  1. 예제 1

    입력
    3
    2 3 3 60
    2 2 1 18
    2 2 1 4
    
    예상 출력
    54
    18
    -1