식중독
시간 제한1초메모리 제한1024 MB
식당 n곳 중 식중독을 일으키는 식당 하나를 찾을 때, 식중독이 최대 p번 이하로 발생하도록 식사하는 최소 주차 수를 구합니다.
문제
친구 Mikey는 최근 매주 식중독에 걸리고 있다. Mikey는 식중독의 원인이 정확히 한 식당이라고 거의 확신하지만, 그것이 어느 식당인지는 모른다. Mikey는 최대한 적은 주 수 안에 원인 식당을 찾고 싶어 한다.
매주 Mikey는 평소 다니는 식당들 중 원하는 부분집합에서 식사할 수 있다. 부분집합의 크기는 필요에 따라 작아도 되고 커도 된다. Mikey는 식중독에 여러 번 걸리고 싶지 않으므로, 식중독에 걸리는 횟수를 최대 p번으로 제한하면서 원인 식당을 찾고자 한다.
어떤 주에 부분집합에서 식사하고 식중독에 걸렸다면, 원인 식당은 그 부분집합에 포함된다. 식중독에 걸리지 않았다면, 원인 식당은 그 부분집합에 포함되지 않는다. 주마다 부분집합의 크기가 같을 필요는 없다.
입력
입력은 한 줄이며, 정수 두 개가 주어진다. 첫 번째는 식당 수 ()이고, 두 번째는 Mikey가 식중독에 걸려도 괜찮다고 하는 최대 횟수 ()이다.
출력
최악의 경우를 가정한 최적 전략으로 원인 식당을 확정할 때까지 Mikey가 식사해야 하는 최소 주 수를 출력한다. 답은 항상 존재한다.
힌트
식당이 8개이고 이면, Mikey는 매주 식당 하나에서만 식사하면 된다. 그 식당이 원인인지 그 주에 바로 알 수 있다. 식당이 8개뿐이므로 최대 7주 안에 원인 식당을 알게 된다.