캔디 분배

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

요약
각 테스트마다 K와 C가 주어질 때, B*C = K*X + 1 (X는 양의 정수)을 만족하는 1e9 이하의 최소 B를 구하고, 없으면 IMPOSSIBLE을 출력한다.
난이도

보통10점 중 5점

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

문제

파티에 손님 KK명이 온다. 사탕을 공평하게 나누어 주려면 사탕의 개수가 KK의 배수여야 한다. 즉 어떤 양의 정수 XX에 대해 정확히 K×XK \times X개여야 한다. 그런데 항상 적어도 한 명은 사탕을 잃어버리므로, 사탕 하나를 더 사서 전체 K×X+1K \times X + 1개를 준비한다.

사탕은 봉지 단위로만 팔리며, 한 봉지에는 정확히 CC개가 들어 있다. 따라서 BB봉지를 사면 사탕은 B×CB \times C개가 된다. BB봉지를 사는 것이 조건을 만족한다는 것은, 어떤 양의 정수 XX에 대해 B×C=K×X+1B \times C = K \times X + 1이 성립한다는 뜻이다. 특히 전체 사탕 개수는 K+1K + 1 이상이다.

입력

첫째 줄에 테스트 케이스의 개수 tt가 주어진다 (0<t<1000 < t < 100). 다음 tt개의 줄에는 각각 두 정수 KK와 CC가 공백으로 구분되어 주어진다 (1≤K,C≤1091 \le K, C \le 10^9). 봉지는 10910^9개를 넘게 살 수 없으므로 1≤B≤1091 \le B \le 10^9인 경우만 허용된다.

출력

각 테스트 케이스에 대해 조건을 만족하는 봉지 수 BB의 최솟값을 출력한다. 허용 범위 안에서 조건을 만족하는 봉지 수가 없으면 대신 IMPOSSIBLE을 출력한다. 답은 한 줄에 하나씩 출력한다.

예제1

  1. 예제 1

    입력
    5
    10 5
    10 7
    1337 23
    123454321 42
    999999937 142857133
    
    예상 출력
    IMPOSSIBLE
    3
    872
    14696943
    166666655