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

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

토너먼트

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

요약
참가자 수 n과 조 크기 k가 주어질 때 가능한 조 편성으로 끝까지 살아남을 수 있는 참가자 수를 셉니다.
난이도

쉬움10점 중 2점

유형
수학
정답자
아직 제출이 없습니다

문제

프로그래밍 토너먼트에 nn명의 참가자가 출전합니다. 모든 참가자의 실력은 서로 다르므로, 두 참가자의 실력이 같은 경우는 없습니다.

매일 전날 살아남은 참가자들끼리 라운드를 진행합니다. 하루 동안 참가자들은 kk명씩 여러 그룹으로 나뉩니다. kk명이 모두 채워진 그룹에서는 실력이 가장 약한 한 명이 탈락하고, 나머지 k−1k - 1명이 다음 날로 진출합니다. 인원이 kk명에 못 미치는 그룹은 최대 한 개까지 생길 수 있으며, 그런 그룹에 속한 참가자는 전원 자동으로 다음 날로 진출합니다. 남은 인원이 kk명 미만이 되어 kk명짜리 그룹을 하나도 만들 수 없게 되면 토너먼트가 끝납니다.

날마다 참가자를 그룹으로 나누는 방식은 임의로 정해집니다. 가능한 모든 그룹 편성 방식을 통틀어, 토너먼트가 끝났을 때 살아남아 우승자가 될 수 있는 서로 다른 참가자가 몇 명인지 세어 주세요.

입력

첫 번째 줄에 테스트 케이스의 개수 zz (1≤z≤1061 \le z \le 10^6)가 주어집니다. 이어지는 zz개의 줄에는 각각 두 정수 nin_i와 kik_i (2≤ni,ki≤1092 \le n_i, k_i \le 10^9)가 주어지며, 차례로 그 토너먼트의 참가자 수와 그룹 크기를 나타냅니다.

출력

각 테스트 케이스마다 한 줄에 정수 하나를 출력합니다. 그 값은 해당 토너먼트에서 우승자가 될 수 있는 서로 다른 참가자의 수입니다.

예제1

  1. 예제 1

    입력
    3
    4 2
    3 3
    5 3
    
    예상 출력
    1
    2
    2