최종 순위
시간 제한2초메모리 제한512 MB
각 팀의 실력과 문제의 난이도, 동결된 스코어보드가 주어질 때, 동점은 항상 t번 팀의 승리로 가정하고 t번 팀이 최종 1위를 차지할 확률을 구한다.
문제
GCPC 2019가 드디어 끝났다. 다섯 시간 동안 최대한 많은 문제를 풀었다. 하지만 스코어보드가 아직 고정되어 있어서 자신이 몇 등인지 알 수 없다. 물론 자신과 자신의 팀이 GCPC 2019에서 우승했다고 생각한다.
대회가 끝나고 스코어보드가 풀릴 때까지는 항상 긴 공백이 있다(누군가는 상장을 인쇄해야 하고, 누군가는 풀이 슬라이드를 다시 컴파일해야 한다). 이 시간을 이용해 자신의 팀이 GCPC 2019에서 우승했을 확률을 구하려고 한다.
최종 스코어보드를 알고 있다. 즉, 모든 팀에 대해 고정 전에 어떤 문제를 풀었고 고정 중에 어떤 문제를 시도했는지 안다. 또한 작년의 기록에서 각 팀의 실력을 알고 있고, 각 문제의 난이도에 대한 자신의 추정을 신뢰한다. 정확히 말해, 실력 인 팀이 난이도 인 문제를 풀려고 시도했다면, 그 문제를 풀 확률은 라고 가정한다.
자신의 팀이 올해 쉬운 문제를 매우 빠르게 풀었으므로, 다른 팀이 자신보다 높은 순위를 차지하려면 더 많은 문제를 풀어야 한다고 가정한다(동점일 때는 항상 자신이 이긴다고 가정한다).
입력
- 첫 번째 줄에는 두 정수 와 가 주어진다(). 이는 대회의 팀 수와 문제 수이다. 팀은 번부터 번까지, 문제는 번부터 번까지 번호가 매겨진다. 자신의 팀은 번 팀이다.
- 두 번째 줄에는 개의 실수 이 주어진다(각 에 대해 ). 는 팀 의 실력이다.
- 세 번째 줄에는 개의 실수 가 주어진다(각 에 대해 ). 는 문제 의 난이도이다.
- 그다음 개의 줄이 다른 팀들의 문제 상태를 나타낸다. 각 줄에는 개의 문자 가 주어진다. 번째 줄의 는 팀 의 문제 상태를 나타내며, 고정 전에 그 문제를 풀었으면 X, 고정 후에 그 문제에 대한 프로그램을 제출했으면 ?, 그 외에는 -이다.
- 마지막 줄은 자신의 팀이 푼 문제를 나타내며, 개의 문자로 각각 X 또는 -이다.
입력의 모든 실수는 소수점 이하 자릿수가 최대 여섯 자리이다.
출력
자신의 팀이 GCPC 2019에서 우승했을 확률을 실수 하나로 출력한다. 답의 절대 오차 또는 상대 오차는 이하여야 한다.