조별리그 여섯 경기 중 네 경기 결과가 주어졌을 때, 별표 팀이 조 2위 안에 들어 2라운드에 진출할 확률을 계산한다.
보통7확률조합론구현수학아직 제출이 없습니다시간 제한2초메모리 제한512 MBFIFA 월드컵에 이어, 우주 어딘가에서 더 큰 대회인 GIGA Universe Cup이 열린다. 두 대회 모두 조별 리그라고 부르는 1라운드와 결승 토너먼트라고 부르는 2라운드로 진행한다. 1라운드에서는 참가 팀을 네 팀씩 한 조로 나누고, 같은 조의 팀은 나머지 세 팀과 각각 한 경기씩 치른다. 예를 들어 Engband, Swedon, Argontina, Nigerua가 한 조라면 Engband 대 Swedon, Engband 대 Argontina, Engband 대 Nigerua, Swedon 대 Argontina, Swedon 대 Nigerua, Argontina 대 Nigerua, 이렇게 여섯 경기를 치른다.
한 경기의 결과는 두 팀이 넣은 골 수로 나타낸다. Engband 1 - 0 Argontina는 Engband가 한 골을 넣고 Argontina는 한 골도 넣지 못했다는 뜻이다. 경기 결과에 따라 두 팀에 승점을 주고, 이 승점으로 순위를 매긴다. 상대보다 골을 많이 넣어 이긴 팀은 승점 3점을 얻고 진 팀은 0점을 얻는다. 두 팀이 넣은 골 수가 같아 비기면 두 팀이 1점씩 얻는다.
어떤 경기 묶음에서 한 팀의 골 득실차는 그 경기에서 그 팀이 넣은 골 수의 합에서 상대 팀이 넣은 골 수의 합을 뺀 값이다. 예를 들어 Swedon 1 - 2 Engband, Swedon 3 - 4 Nigerua, Swedon 5 - 6 Argontina 세 경기에서 Swedon의 골 득실차는 (1+3+5)−(2+4+6)=−3이다.
한 조의 여섯 경기가 모두 끝나면 아래 기준을 우선순위 순서로 적용해 순위를 정한다. 먼저 (a)로 순위를 가르고, 같으면 (b)로, 그래도 같으면 (c)로 가른다.
(a) 조별 리그 전체 경기의 승점이 많은 팀
(b) 조별 리그 전체 경기의 골 득실차가 큰 팀
(c) 조별 리그 전체 경기에서 넣은 골이 많은 팀
세 기준을 적용하고도 두 팀 이상의 순위가 같으면, 다음 기준을 이 순서로 적용해 자리를 정한다.
(d) 순위가 같은 팀끼리 치른 경기의 승점이 많은 팀
(e) 순위가 같은 팀끼리 치른 경기의 골 득실차가 큰 팀
(f) 순위가 같은 팀끼리 치른 경기에서 넣은 골이 많은 팀
그래도 순위가 같은 팀이 둘 이상 남으면, 남은 팀 묶음마다 그 팀들끼리 치른 경기만 세어 (d), (e), (f)를 다시 적용한다. 세 기준이 더는 순위를 가르지 못할 때까지 이 과정을 되풀이한다. 끝까지 순위가 같은 팀은 다음 기준으로 정한다.
(g) GIGA Universe Cup 조직위원회의 추첨
각 조에서 1위와 2위에 오른 두 팀이 2라운드에 진출한다.
한 조에서 지금까지 치른 경기 결과와 그 조의 팀 하나가 주어질 때, 그 팀이 2라운드에 진출할 확률을 구하는 프로그램을 작성하라. 모든 팀은 정확히 두 경기를 치렀고 한 경기를 남겨 두고 있다. 즉 네 경기가 끝났고 두 경기가 남았다.
한 팀이 한 경기에서 정확히 p골을 넣을 확률은 p≤8일 때
p!(8−p)!8!(41)p(43)8−p
이고, p>8이면 0이다. 남은 두 경기에서 나오는 네 골 수는 서로 독립이다. (g)의 추첨은 공정하므로 끝까지 순위가 같은 팀의 모든 순서가 같은 확률로 나온다.
첫 줄에는 뒤따르는 레코드의 개수를 나타내는 1000보다 작은 정수가 주어진다.
그다음에는 그 개수만큼 레코드가 주어진다. 레코드 하나는 다섯 줄이고 형식은 다음과 같다.
<empty> <_> <team1> <_> <team2> <_> <team3> <_> <team4>
<team1> <_> <empty> <_> <m12> <_> <m13> <_> <m14>
<team2> <_> <empty> <_> <empty> <_> <m23> <_> <m24>
<team3> <_> <empty> <_> <empty> <_> <empty> <_> <m34>
<team4> <_> <empty> <_> <empty> <_> <empty> <_> <empty>
위 형식은 보기 편하도록 칸 사이에 공백을 넣은 것이다. 실제 입력의 각 줄은 다섯 칸을 공백 없이 이어 붙인 것이라 길이가 정확히 24자다. 여기서 <_>는 밑줄 하나이고, <empty>는 밑줄 네 개다.
<team1>부터 <team4>까지는 별표 하나 뒤에 대문자 세 개가 오는 형태(예: *ENG)이거나 밑줄 하나 뒤에 대문자 세 개가 오는 형태(예: _SWE)다. 별표가 붙은 팀이 2라운드 진출 확률을 구해야 하는 팀이다. 네 팀 가운데 정확히 한 팀에만 별표가 붙고, 네 팀의 코드는 모두 다르다.
1≤i<j≤4인 <mij>는 <teami>와 <teamj>가 치른 경기의 결과다. 경기 결과는 밑줄 두 개와 붙임표, 밑줄 하나를 이어 붙인 __-_이거나, x와 y가 각각 8 이하의 한 자리 숫자인 _x-y 형태다. 앞의 형태는 그 경기를 아직 치르지 않았다는 뜻이고, 뒤의 형태는 <teami>가 x골을, <teamj>가 y골을 넣었다는 뜻이다. 모든 팀이 정확히 두 경기를 치렀으므로 앞의 형태인 경기 결과는 정확히 두 개다.
입력의 레코드 개수를 n이라 할 때 n줄을 출력한다. i번째 줄에는 i번째 레코드에서 별표가 붙은 팀이 2라운드에 진출할 확률을 출력한다.
확률의 정확한 값은 유리수다. 이 값을 소수점 아래 일곱째 자리까지 반올림하되 정확히 중간인 값은 올리고, 소수점 아래 자릿수가 정확히 일곱 자리가 되도록 출력한다.