만드는 중입니다

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

경품 추첨 속이기

시간 제한2초메모리 제한512 MB

요약
n장의 응모권이 든 상자에 자신의 이름이 적힌 k장을 더 넣어, p장을 뽑을 때 자신의 이름이 정확히 한 번 나올 확률이 최대가 되도록 한다.
난이도

보통10점 중 5점

유형
수학, 조합론, 확률, 완전 탐색
정답자
아직 제출이 없습니다

문제

경품 추첨이 열린다. 상품은 pp개이고, 참가하려면 자기 이름을 적은 종이를 추첨함에 넣으면 된다. 당첨자는 함에서 종이를 pp장 뽑아 정한다. 뽑힌 종이는 함에 다시 넣지 않으므로 한 사람이 받는 상품은 최대 한 개다.

이름을 두 장 이상 넣는 것은 규칙 위반이다. 그러나 주최 측은 함에 든 이름을 일일이 확인하지 않으므로, 자기 이름이 두 개 이상의 상품에 뽑혀야만 부정이 드러난다. 그래서 이름을 여러 번 넣으면 상품을 받을 확률이 오히려 올라가기도 한다.

다른 사람이 넣은 종이는 nn장이다. 여기에 자기 이름을 적은 종이를 kk장 넣는다고 하자 (k≥1k \ge 1). 그러면 함에 든 종이는 n+kn + k장이고, 그중 pp장을 같은 확률로 무작위로 뽑는다. kk를 잘 골라서 자기 이름이 정확히 한 번 뽑힐 확률을 최대로 만들어라.

입력

첫째 줄에 정수 nn과 pp가 공백으로 구분되어 주어진다 (2≤p≤n≤1062 \le p \le n \le 10^6). nn은 자기 것을 뺀 함 속 종이 수, pp는 나눠 주는 상품 수다.

출력

상품을 받을 확률의 최댓값을 소수점 아래 정확히 아홉 자리까지 반올림해 한 줄에 출력한다. 자릿수가 모자라면 0으로 채운다. 예를 들어 확률이 0.60.6이면 0.600000000을 출력한다.

예제2

  1. 예제 1

    입력
    3 2
    
    예상 출력
    0.600000000
    
  2. 예제 2

    입력
    23 5
    
    예상 출력
    0.450498575