시간 제한 | 메모리 제한 | 제출 | 정답 | 맞힌 사람 | 정답 비율 |
---|---|---|---|---|---|
1 초 | 128 MB | 25 | 6 | 6 | 27.273% |
이제 여행을 끝나고 돌아갈 날이 되었다. 물론 아쉬운 것은 많지만 그 중 가장 아쉬운 것은 내가 2만 피트 상공을 날아가는 동안 윔블던 테니스 시합이 끝난다는 점이다.
어, 잠깐. 잠시 잘못 생각했다. 시합이 시작하는 거야 물론 낮이지만, 테니스의 특성상 대회가 충분히 길어질 수 있다. 만일 저녁까지 시합이 계속된다면 아마 대회를 볼 수 있을 텐데. 언제쯤 시합이 끝나려나?
난 모든 선수들에 대해 서브권을 가졌을 때 그 선수가 어느 정도의 확률로 이기는지 모두 파악하고 있다. 다만 테니스 시합은 여러 세트로 이루어져 있고, 그 세트는 각각 여러 게임으로 이루어져 있으며, 누가 서브를 하냐에 따라 승률이 다르기 때문에 나 혼자는 대회가 얼마나 길어질지 예측할 수가 없다.
테니스 대회의 규칙은 간단하다.
위에 말했듯이 어떤 두 선수간의 경기는 여러 세트로 이루어져 있다.
만일 어떤 선수가 먼저 3세트를 승리한다면 곧바로 경기는 종료된다.
따라서, 어떤 경기의 최종 세트 스코어는 반드시 3-0, 3-1, 3-2 중 하나이다.
그리고 각 세트는 여러 게임으로 이루어져 있다.
각 게임은 반드시 5분씩 진행되며 만일 어떤 선수가
을 만족한다면 한 세트가 끝난다. 이때 세트의 승자는 6게임 이상 승리한 그 선수가 된다.
만일 각 세트에서 6-6의 게임 스코어가 나온다면, Tie-Break 게임 하나를 더 진행하여 승자를 결정한다.
따라서, 각 세트에서 나올 수 있는 게임 스코어는 6-0, 6-1, 6-2, 6-3, 6-4, 7-5, 그리고 Tie-Break를 통한 결과로 7-6까지 총 7가지밖에 없다.
각 게임에서는 한 선수가 게임 내내 서브를 하며, 게임이 끝날 때마다 서브권은 변경된다. 서브권은 승패와 관계없이 게임이 끝날 때마다 교대로 갖게 되며, 이 규칙은 세트 단위를 넘어 경기 내내 적용된다. 예를 들어, A와 B의 경기에서 A가 먼저 서브를 하고 게임 스코어 6-1로 한 세트를 승리로 끝냈다면, 다음 세트에서는 B가 먼저 서브를 한다. 물론 이것은 A가 먼저 서브를 하고 6-1의 게임 스코어로 B가 한 세트를 승리했을 경우에도 적용되어 다음 세트에서는 B가 먼저 서브를 한다. 즉, 이전 세트의 마지막 게임에서 서브를 한 선수의 상대 선수가 이번 세트의 첫 서브를 하게 된다는 것이다.
내가 아는 정보는 어느 두 선수가 만났을 때 서브권을 가진 선수가 어느 정도의 확률로 이기는지에 대한 정보 뿐이다.
그래서 이 정보만으로 두 선수간의 경기가 최종 종료되기까지 걸리는 기대시간을 계산해줄 프로그램이 필요하다.
입력의 첫 줄엔 테스트 케이스의 수 T가 주어진다.
각 테스트 케이스는 두 줄로 이루어져 있다.
첫 줄엔 처음으로 서브를 하는 선수의 성과 이름이 공백으로 구분되어 주어지며, 그에 이어 그 선수가 서브권을 가진 게임에서 승리할 확률이 백분율의 100배인 정수로 주어진다.
그리고 다음 줄엔 첫 줄의 선수와 경기를 하는 선수의 성과 이름이 공백으로 구분되어 주어지며, 역시 이 선수가 서브권을 가진 게임에서 어느 정도의 확률로 승리하는지가 주어진다.
예를 들어, 예제의 첫 테스트 케이스를 살펴보면
Rafael Nadal 50
Roger Federer 50
이 테스트 케이스는
첫 서브를 하는 Rafael Nadal은 서브권을 가졌을 때 50%의 확률로 승리하며, Roger Federer 선수도 서브권을 가졌을 때 50%의 확률로 승리한다는 것이다.
각 테스트 케이스에 대해, 주어진 두 선수의 경기가 얼마나 진행될지 소수점 7번째 자리에서 반올림하여 여섯 번째 자리까지 출력한다. 절대/상대 오차는 10-6까지 허용한다.
2 Rafael Nadal 50 Roger Federer 50 Pete Sampras 100 Hamza Darwish 0
Case #1: 199.281006 Case #2: 90.000000
두 번째 테스트 케이스에서는 Pete Sampras가 모든 게임을 이기며 6-0의 게임 스코어로 묶인 세트 3개를 연달아 승리하여 총 18경기만을 하게 되며, 총 경기는 항상 90분만에 끝나게 된다.
ICPC > Regionals > Africa and Arab > Arab Collegiate Programming Contest > Lebanese Collegiate Programming Contest > LCPC 2011 C번