Informatica Online Judge

  엑스컴 [1941 / 0795]

Time Limit(Test case) : 2500(ms)
Number of users who solved : 3   Total Tried : 5


The Champion of this Problem (C++) : gs15098 - 18ms / 2476byte
My Best Submission (C++) : N/A

[koistudy.net (34th 이중훈)]
Writer ID : [gs15088]

Background

파이락시즈 게임즈의 신작 엑스컴: 스페셜에디션이 출시되었다.

엑스컴: 스페셜에디션에서는 총 n명의 유저들이 온라인으로 게임을 진행한다.

1번부터 n번째까지의 유저가 각각에게 차례대로 턴이 돌아오며 자신의 턴에는 원하는 상대를 한번 쏠 수 있다.

만약 마지막 번호의 사람의 턴이 종료되면 다시 첫번째 유저의 턴이 돌아오고 최후의 한명이 남을때까지 진행된다.

각각의 유저들의 총은 일정 확률로 상대 플레이어를 쏘았을때 적중시키거나 빗나간다.

만약 총알이 빗나갔는데 또다른 유저를 맞추는 경우는 없다. 또한, 모든 유저들의 서로의 총의 확률을 알고 있으며 모두가 우승을 위해 최선의 전략을 택하며 전략상 쏘아야할 유저가 여러명인경우 각각을 선택할 확률은 동일하다.

경곽이는 엑스컴: 스페셜에디션의 데스매치 모드에서 n명의 유저 각각이 마지막까지 살아남아 승리할 확률을 구하고 싶다.

이때 데스매치 모드에서는 모든 유저가 총에 한번 맞으면 바로 사망한다고 한다.

경곽이를 도와주기 위해 n명의 유저별로 각각이 승리할 확률을 구하는 프로그램을 만들어주자.

Input

첫번째 줄에 전체 유저 수를 나타내는 자연수 n이 입력된다. (2<=n<=13)

두번째 줄에는 총 n개의 정수 a_i가 입력되는데, 각각 첫번째부터 n번째까지 유저의 총이 적중될 확률이 백분율로 입력된다. (1<=i<=n, 0<=a_i<=100)

단, 무조건 한명만 살아남아 한명의 승리자가 결정되는 경우의 입력만 주어진다.

Output

총 n줄에 걸쳐 i번째 줄에는 i번째 유저가 마지막까지 살아남아 승리할 확률을 백분율로 출력한다. 이때, 각각의 확률은 소수점 셋째자리에서 반올림하여 소수점 둘째자리까지 출력한다.

IO Example

입력
2
50 50

출력
66.67 33.33

Submit : [C/C++] | [C++11] | [Obj-C] | [Java] | [Python]
Prob Analysis : [Problem Statistics] | [Solution]