커버 업

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

요약
각 자릿수의 후보와 알려진 후보 확률이 주어질 때 참가자가 최적으로 추측할 때의 승리 확률을 구한다.
난이도

보통10점 중 6점

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

문제

어느 인기 게임 쇼에는 참가자가 새 자동차의 가격인 여러 자리 수를 한 자리씩 맞히는 게임이 있다. 각 자리마다 고를 수 있는 숫자 후보가 여러 개 주어지며(예: 첫 자리는 두 개, 둘째 자리는 세 개, ...), 그중 정확히 하나가 정답이다.

매 턴마다 참가자는 아직 맞히지 못한 각 자리에 대해, 그 자리에서 아직 고르지 않은 숫자 중 하나를 선택한다. 그러면 어느 선택이 맞았는지 알려 준다. 이번 턴에 새로 맞힌 자리가 하나라도 있으면, 아직 틀린 자리들에 대해 다시 추측할 수 있다. 참가자는 매 턴 새로 맞힌 자리가 하나 이상 있는 한 계속 추측한다. 모든 자리를 맞히면 승리, 어떤 턴에 새로 맞힌 자리가 하나도 없으면 패배로 게임이 끝난다.

각 자리에는 일부 후보가 '유력 후보(known candidate)'로 표시되어 있다. 어떤 자리에 후보가 mm개 있고 그중 ll개가 유력 후보이며, 정답이 유력 후보들 중 하나일 확률이 pp라고 하자. 그러면 각 유력 후보가 정답일 확률은 모두 같아서 p/lp/l이고, 나머지 m−lm-l개의 후보가 정답일 확률도 모두 같아서 (1−p)/(m−l)(1-p)/(m-l)이다. 예를 들어 어떤 자리에 후보가 다섯 개이고 그중 두 개가 유력 후보로서 합쳐 70%70\%의 확률을 가진다면, 각 유력 후보는 35%35\%, 나머지 세 후보는 각각 10%10\%의 확률을 가진다.

참가자가 (이런 확률에 근거한) 최적 전략으로 숫자를 고를 때 이 게임에서 승리할 확률을 구하여라.

입력

각 테스트 케이스는 두 줄로 이루어진다. 첫 줄에는 맞혀야 하는 수의 자릿수 nn이 주어지며, nn의 최댓값은 55이다. 둘째 줄에는 nn개의 삼중값이 m l pm\ l\ p 형태로 주어진다. 여기서 mm은 한 자리의 후보 개수, ll은 유력 후보의 개수, pp는 유력 후보 중 하나가 정답일 확률이다. 모든 경우에 0≤l<m≤100 \le l < m \le 10이고 0.0≤p≤1.00.0 \le p \le 1.0이다. l=0l = 0일 때(유력 후보가 없을 때)에는 항상 p=0.0p = 0.0이다. 00 하나만 있는 줄이 입력의 끝을 나타낸다.

출력

각 테스트 케이스에 대해, 최적 전략을 사용할 때의 승리 확률을 출력한다. 모든 확률은 소수점 아래 넷째 자리에서 반올림하여 셋째 자리까지 나타내며, 뒤따르는 00은 출력하지 않는다. (승리 확률이 100%100\%이면 11로 출력한다.)

예제1

  1. 예제 1

    입력
    2
    3 1 0.8 2 0 0.0
    2
    3 2 0.8 2 0 0.0
    2
    3 2 0.82 2 1 0.57
    3
    4 1 1.0 3 0 0.0 10 1 1.0
    0
    
    예상 출력
    0.85
    0.6
    0.644
    1