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

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

우편함 제조사 문제

면접 대비

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

요약
폭죽 m개까지 견디는 동일한 우체통 k개가 있을 때, 견딜 수 있는 최대 개수를 정확히 알아내는 데 필요한 최악의 경우 폭죽 소비량의 최솟값을 구한다.
난이도

보통10점 중 7점

유형
동적 계획법, 이분 탐색, 수학, 그리디
정답자
아직 제출이 없습니다

문제

어느 우편함 제조사가 새 우편함 시제품이 폭죽을 몇 개까지 견딜 수 있는지 알고 싶어 합니다. 그는 동일한 시제품 kk개(1≤k≤101 \le k \le 10)를 제공하며, 각 시제품에는 폭죽을 최대 mm개(1≤m≤1001 \le m \le 100)까지 넣을 수 있습니다. 시제품 하나가 견딜 수 있는 폭죽의 최대 개수를 알아내는 것이 목표입니다.

우편함을 검사할 때는 폭죽을 몇 개 넣고 터뜨립니다.

  • 넣은 폭죽의 수가 그 우편함이 견딜 수 있는 수 이하이면, 우편함은 멀쩡하여 다시 사용할 수 있습니다.
  • 그렇지 않으면 우편함은 파괴되어 다시 사용할 수 없습니다.

터뜨린 폭죽은 우편함이 견뎠는지 여부와 관계없이 모두 소모됩니다. 즉, 한 번의 검사 비용은 그때 사용한 폭죽의 수와 같습니다. 시제품이 견딜 수 있는 최대 개수를 정확히 알아내되, 최악의 경우에 사용하는 폭죽의 총수를 최소로 하는 전략을 찾아야 합니다.

다음을 가정합니다.

  1. 우편함이 폭죽 xx개를 견딜 수 있다면, x−1x - 1개도 견딜 수 있습니다.
  2. 폭죽을 터뜨린 뒤 우편함은 완전히 파괴되거나 전혀 손상되지 않은(재사용 가능한) 두 상태 중 하나입니다.

우편함이 k=1k = 1개뿐이라면 폭죽을 11개, 22개, … 이렇게 하나씩 늘려 가며 검사해야 합니다. 최악의 경우(폭죽 mm개를 가득 넣어도 견디는 경우) 1+2+⋯+m=m(m+1)21 + 2 + \cdots + m = \frac{m(m + 1)}{2}개의 폭죽이 필요합니다. 우편함이 더 많으면 더 적은 폭죽으로 해결할 수 있습니다.

시제품이 견딜 수 있는 최대 개수는 00 이상 mm 이하의 정수이며, 폭죽 mm개를 가득 넣어도 견딘다면 그 답은 mm입니다. 이 최대 개수를 알아내기 위해 최악의 경우에 필요한 폭죽의 최소 개수를 구하세요.

입력

첫 줄에 테스트 케이스의 수를 나타내는 정수 NN(1≤N≤101 \le N \le 10)이 주어집니다. 이어지는 NN개의 줄에는 각 테스트 케이스가 정수 kk와 mm으로 주어지며, 두 수는 공백 하나로 구분됩니다.

출력

각 테스트 케이스마다, 우편함 시제품이 견딜 수 있는 폭죽의 최대 개수를 알아내기 위해 최악의 경우에 필요한 폭죽의 최소 개수를 한 줄에 하나씩 정수로 출력하세요.

예제1

  1. 예제 1

    입력
    4
    1 10
    1 100
    3 73
    5 100
    
    예상 출력
    55
    5050
    382
    495