만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

Malvika가 프로그래밍 캠프를 운영한다

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

요약
일렬로 선 n명이 m개의 주제를 모두 배우는 데 필요한 최소 시간을 구합니다. 맨 오른쪽의 Malvika가 가르치고, 매 시간 이웃끼리 한 번씩 가르칠 수 있습니다.
난이도

보통10점 중 6점

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

문제

Malvika는 프로그래밍 대회에서 많은 지식을 쌓았다. 그 지식을 바탕으로 인도의 차세대 프로그래머를 키우려고 프로그래밍 캠프를 열었다. 토론 세션에는 nn명이 참가한다. 학생 n−1n-1명과 Malvika 본인이다. 참가자들은 왼쪽에서 오른쪽으로 1번부터 nn번까지 번호가 매겨진 일렬로 앉는다. Malvika는 nn번 자리에 앉는다. 그녀는 학생들에게 competitive programming 주제 mm개를 가르치려 한다. 참가자는 모두 초보자다. 처음에는 앞의 n−1n-1명이 어떤 주제도 모르고, nn번째 사람(Malvika)만 모든 주제를 안다.

한 사람이 옆 사람에게서 주제 하나를 배우는 데 1시간이 걸린다. 한 사람은 같은 시간에 가르치면서 동시에 배울 수 없다. 어느 1시간에든 한 사람은 자신이 아는 주제를 옆 사람 한 명에게 가르치거나, 옆 사람 한 명에게서 주제를 배우거나, 아무것도 하지 않는다. 어느 시간에 xx번 사람이 yy번 사람에게서 배우고 있다면, 그 시간에 yy번 사람은 반드시 xx번 사람을 가르치고 있어야 한다. 여러 사람이 동시에 일할 수도 있다. 예를 들어 4번 사람이 3번 사람을 가르치는 동안 1번 사람은 2번 사람을 가르치거나 2번 사람에게서 배울 수 있다.

모든 사람이 mm개의 주제를 전부 배우는 데 걸리는 최소 시간을 구하라.

입력

첫 줄에 테스트 케이스 개수를 나타내는 정수 TT가 주어진다. 각 테스트 케이스는 한 줄이며, 문제에서 정의한 두 정수 nn과 mm이 공백으로 구분되어 주어진다.

출력

각 테스트 케이스마다 답을 나타내는 정수를 한 줄에 하나씩 출력한다.

제한

1≤T,n,m≤1001 \le T, n, m \le 100

힌트

첫 번째 예시에서는 사람이 두 명이다. 두 번째 사람은 Malvika이며, 첫 번째 사람에게 주제 하나만 가르치면 된다. 이는 1시간이면 끝난다.

두 번째 예시에서는 사람이 세 명이다. 3번 사람인 Malvika는 1번과 2번 사람에게 주제 두 개를 가르쳐야 한다. 1시간째에 그녀가 첫 번째 주제를 2번 사람에게 가르친다. 2시간째에 2번 사람이 그 주제를 1번 사람에게 가르친다. 3시간째에 Malvika가 두 번째 주제를 2번 사람에게 가르친다. 4시간째에 2번 사람이 그 주제를 1번 사람에게 가르친다. 따라서 총 4시간이 걸린다.

예제1

  1. 예제 1

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