승패 일정표에서 각 팀의 승률과 상대 팀 및 상대의 상대 팀 승률 평균으로 RPI를 계산합니다.
쉬움3시뮬레이션수학아직 제출이 없습니다시간 제한5초메모리 제한512 MB미국에서는 해마다 350개 학교가 대학 농구 토너먼트 초청장을 놓고 경쟁한다. 학교가 이렇게 많으니 누구를 부를지 정하기가 쉽지 않다. 서로 한 번도 맞붙지 않은 팀이 대부분이고, 일정이 유난히 험한 팀도 있다.
A, B, C, D 네 팀의 일정 예시는 다음과 같다.
|ABCD
-+----
A|.11.
B|0.00
C|01.1
D|.10.
각 팀의 행에 있는 1은 승리, 0은 패배를 뜻한다. C는 B와 D를 이기고 A에게 졌다. A는 B와 C를 이겼고 D와는 경기한 적이 없다.
토너먼트 위원회는 팀 순위를 매길 때 RPI(Ratings Percentage Index)라는 공식을 쓴다.
RPI=0.25×WP+0.50×OWP+0.25×OOWP
WP, OWP, OOWP는 팀마다 다음과 같이 정의한다.
정리하면 A는 RPI=(0.25×1)+(0.5×0.5)+(0.25×7/12)=0.6458333…이다.
RPI가 팀 실력을 제대로 재는 값인지, 경기를 이기는 쪽과 강한 상대를 일정에 넣는 쪽 중 무엇이 더 중요한지 같은 물음도 던질 수 있다. 이 문제에서 할 일은 더 단순하다. 경기 일정이 주어지면 모든 팀의 RPI를 계산하라.
첫 줄에 테스트 케이스의 수 T가 주어진다. 각 테스트 케이스의 첫 줄에는 팀 수 N이 주어진다. 이어지는 N개 줄에는 위 예시와 같은 형식의 일정이 한 줄에 정확히 N글자씩 주어지고, 각 글자는 '0', '1', '.' 중 하나이다. i행 j열이 '1'이면 팀 i가 팀 j를 이겼고, '0'이면 팀 i가 팀 j에게 졌으며, '.'이면 두 팀은 맞붙은 적이 없다.
각 테스트 케이스마다 N+1개 줄을 출력한다. 첫 줄은 "Case #x:"이고, x는 1부터 시작하는 테스트 케이스 번호이다. 이어지는 N개 줄에는 각 팀의 RPI를 일정에 주어진 순서대로 한 줄에 하나씩 출력한다. RPI는 소수점 아래 아홉째 자리까지 반올림해 정확히 아홉 자리로 출력한다.