실험자
시간 제한1초메모리 제한1024 MB
n층 건물과 m개의 트랜지스터로 트랜지스터가 깨지는 가장 낮은 층을 찾을 때, 최악의 경우 계단을 오르는 최소 층수를 구합니다.
문제
나이가 든 한 교수가 트랜지스터 КД521(2)의 강도를 조사하는 데 관심을 가지게 되었다. 안타깝게도 동료를 한 명도 도움으로 부르지 못해서 측정은 직접 해야 한다. 하지만 교수는 이를 두려워하지 않는다.
교수는 찬장에서 옛날부터 남아 있던 같은 모델의 트랜지스터 개를 찾았고, 이를 실험에 쓰기로 했다.
여러 생각 끝에 측정 방법을 정했다. 교수는 비상계단을 오르내리며 여러 층에서 트랜지스터를 떨어뜨린다. 이렇게 해서 떨어뜨렸을 때 트랜지스터가 깨지는 최소 층을 알아내려는 것이다. 교수는 최상층에서 떨어뜨리면 트랜지스터가 반드시 깨진다고 확신한다. 반면 사람 키 높이, 즉 교수가 1층에 있을 때의 낙하로는 트랜지스터가 손상되지 않는다.
모든 트랜지스터는 똑같다. 어떤 층에서 떨어뜨려 깨졌다면, 그보다 높은 모든 층에서 떨어뜨려도 깨진다.
깨진 트랜지스터는 다시 쓸 수 없다. 떨어뜨린 뒤에도 온전히 남은 트랜지스터는 재사용할 수 있다. 온전한 트랜지스터를 주우려면 교수가 1층까지 내려가야 한다. 1층에 도착하면 그곳에 놓인 트랜지스터를 모두 주울 수 있다.
교수는 나이 탓에 힘이 부쳐서, 계단을 오르며 이동하는 총 거리를 최소화하고 싶어 한다. 하지만 나이에는 장점도 있다. 안경을 벗고도 어느 층에서든 트랜지스터가 깨졌는지 알아볼 수 있다.
처음에 교수는 1층에 있고 트랜지스터는 개 있다. 교수가 사는 건물은 층이다.
실험 중 최악의 경우에 교수가 계단을 위로 올라가야 하는 층수의 최솟값을 구하시오.
입력
입력 파일에는 두 정수가 주어진다. 건물의 높이 ()과 트랜지스터 개수 ()이다.
출력
출력 파일에는 정수 하나를 출력한다. 최악의 경우 실험 중 교수가 계단을 위로 올라가야 하는 최소 층수이다.
힌트
첫 번째 입력 예에서 교수의 최적 행동은 다음과 같다. 먼저 2층을 올라가 3층에서 트랜지스터를 떨어뜨린다. 깨지면 2층으로 내려가 2층에서 떨어뜨린다. 2층에서도 깨지면 결과는 2이고, 깨지지 않으면 3이다. 3층에서 깨지지 않았다면 4층으로 올라가 떨어뜨린다. 깨지면 결과는 4이고, 깨지지 않으면 5이다. 최악의 경우 교수는 3층을 올라가야 한다.
두 번째 입력 예에서는 아무것도 떨어뜨릴 필요가 없고, 실험 결과는 2이다.