아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

언더스터디

시간 제한20초메모리 제한1024 MB

요약
각자 독립적으로 이탈할 확률이 주어진 2N명의 배우를 N개의 짝으로 묶어, 짝마다 (1 - 두 확률의 곱)을 모두 곱한 값이 최대가 되도록 배치하는 문제입니다.
난이도

보통10점 중 7점

유형
그리디, 정렬, 수학, 확률
정답자
아직 제출이 없습니다

문제

당신은 새 뮤지컬의 캐스팅 감독이다. 뮤지컬에는 N개의 역할이 있고, 각 역할마다 주연 한 명과 언더스터디 한 명, 두 명의 배우를 캐스팅하려 한다. 주연과 언더스터디는 각각 한 역할만 연습하며, 언더스터디는 주연이 출연할 수 없게 되면 그 역할을 대신 연기한다. 공연이 성공하려면 각 역할마다 두 배우 중 적어도 한 명이 출연할 수 있어야 한다.

뮤지컬에 출연할 2N명의 배우를 선발했다. 이들은 모두 뛰어나서 누구든 어떤 역할의 주연이나 언더스터디로 캐스팅될 수 있다. 하지만 공연이 시작되기 전에 몇몇 배우가 양자역학을 다룬 대형 뮤지컬 Hamiltonian!의 출연진에 합류하겠다며 떠날 수도 있다. 다행히 당신은 사람을 잘 파악한다. i번째 배우가 출연할 수 없게 될 확률은 Pi이다. 이 확률들은 서로 독립이며, 각 배우는 맡은 역할이나 주연, 언더스터디 여부와 관계없이 같은 확률을 가진다.

공연이 성공할 확률이 최대가 되도록 각 역할마다 주연 한 명과 언더스터디 한 명을 배정하려 한다. 즉, 주연과 언더스터디가 모두 출연할 수 없게 되는 역할이 적어도 하나 존재할 확률을 최소화하려 한다.

최적으로 캐스팅했을 때, 공연이 성공할 확률은 얼마인가?

입력

입력의 첫 줄에는 테스트 케이스의 수 T가 주어진다. 이어서 T개의 테스트 케이스가 주어지며, 각 테스트 케이스는 두 줄로 이루어진다. 첫째 줄에는 역할의 수 N이 주어진다. 둘째 줄에는 2N개의 유리수 Pi가 주어지며, i번째 수는 i번째 배우가 공연에 출연할 수 없게 될 확률이다. 모든 확률은 소수점 아래 네 자리까지 정확히 주어진다.

출력

각 테스트 케이스마다 Case #x: y 형식의 한 줄을 출력한다. 여기서 x는 테스트 케이스 번호(1부터 시작)이고, y는 공연이 성공할 확률이다. y는 정답과의 절대 오차 또는 상대 오차가 10-6 이내이면 정답으로 인정된다.

제한

  • 1 ≤ T ≤ 100.
  • 모든 i에 대해 0.0000 ≤ Pi ≤ 1.0000.

힌트

예제 1에서 한 가지 최적의 캐스팅은 0.5000인 배우 둘을 두 역할의 주연으로, 0.2500인 배우 둘을 언더스터디로 배정하는 것이다. 한 역할에서 두 배우가 모두 출연할 수 없게 될 확률은 0.5 × 0.25 = 0.125이다. 따라서 그 역할이 두 배우 중 적어도 한 명에 의해 채워질 확률은 1 - 0.125 = 0.875이다. 두 역할이 모두 채워질 확률, 즉 공연이 성공할 확률은 0.875 × 0.875 = 0.765625이다.

대신 0.5000인 배우 둘을 한 역할에, 0.2500인 배우 둘을 다른 역할에 캐스팅하면 성공 확률은 (1 - 0.50 × 0.50) × (1 - 0.25 × 0.25) = 0.703125로 더 낮다.

예제 2에서는 각 역할에 0.0000인 배우(절대 출연할 수 없게 되지 않는 배우)를 정확히 한 명씩 캐스팅하기만 하면 공연이 반드시 성공한다.

예제 3에서 1.0000인 배우는 항상 출연할 수 없게 되므로, 성공 확률은 다른 배우가 출연할 수 없게 될 확률을 1에서 뺀 값과 같다.

예제1

  1. 예제 1

    입력
    3
    2
    0.2500 0.5000 0.5000 0.2500
    3
    0.0000 0.0000 0.0000 0.0009 0.0013 0.1776
    1
    1.0000 0.1234
    
    예상 출력
    Case #1: 0.765625
    Case #2: 1.000000
    Case #3: 0.876600