주사위 눈 칠하기
시간 제한1초메모리 제한1024 MB
주사위 N개와 칠할 수 있는 눈의 총개수 M이 주어질 때, 굴린 값들의 곱의 기댓값이 최대가 되도록 눈을 배분하는 문제다.
문제
Alice와 Bob은 게임을 좋아한다. 최근 두 사람은 Alice가 주사위 개를 굴리고, Bob이 나온 눈의 곱에 해당하는 금액을 달러로 지불하는 게임을 하고 있다. 그런데 필요한 실력이 없어서인지 Alice와 Bob은 이 게임에 흥미를 잃었다.
분위기를 바꾸기 위해 두 사람은 직접 만든 주사위를 쓰기로 한다. Alice에게는 눈이 그려지지 않은 면체 주사위 개가 있고, 여기에 눈을 칠할 수 있다. 그녀에게는 눈 개를 칠할 만큼의 물감이 있다. 이 제약 아래에서 Alice는 주사위에 원하는 대로 눈을 칠할 수 있다. 예를 들어 주사위 한 면에 개보다 많은 눈을 칠해도 된다. 한 면에 눈을 개 칠할 수도 있다. 굴린 눈 중 하나라도 이면 곱은 이 된다.
Alice가 주사위를 최적으로 칠한다고 가정할 때, 이 게임에서 그녀가 얻을 상금의 기댓값은 얼마인가?
입력
입력은 한 줄이며, 공백으로 구분된 두 정수 ()과 ()이 주어진다. 은 게임에 쓰이는 주사위의 개수이고, 은 Alice가 전체에 칠할 수 있는 눈의 최대 개수이다.
출력
Alice가 얻을 상금의 기댓값을 실수 하나로 출력한다. 절대 오차 또는 상대 오차가 이하이면 정답으로 인정된다.
힌트
첫 번째 예제에서 Alice가 할 수 있는 최선은 주사위마다 눈을 하나씩 칠하는 것이다. 이때 기댓값은 이다.
두 번째 예제에서 Alice의 최적 전략 중 하나는 주사위의 모든 면에 눈을 하나씩 칠하는 것이다. 어떤 눈이 나오더라도 상금으로 을 받는다.
마지막 예제에서는 Alice가 눈을 개만 칠할 수 있으므로, 어떻게 하더라도 상금은 항상 이다.