- チームリーグの勝敗結果(よくあるマトリックス)がある。
- RPI なる指標を計算する。
int main()
{
int T;
cin>>T;
REP(t, T)
{
int N;
cin>>N;
string sc[N];
double WP[N];
double OWP[N];
double OOWP[N];
CLR(WP);
CLR(OWP);
CLR(OOWP);
REP(i, N){ cin>>sc[i]; }
REP(i, N)
{
{
int win=0, all=0;
REP(j, N)
{
if(sc[i][j]!='.')
{
win += sc[i][j]=='1';
all++;
}
}
WP[i] = (double)win/all;
}
{
int _all=0;
REP(j, N)
{
if(sc[i][j]!='.')
{
_all++;
int win=0, all=0;
REP(k, N)
{
if(k==i) continue;
if(sc[j][k]!='.')
{
win += sc[j][k]=='1';
all++;
}
}
OWP[i] += (double)win/all;
}
}
OWP[i] /= (double)_all;
}
}
cout<<"Case #"<<t+1<<":"<<endl;
REP(i, N)
{
int all=0;
REP(j, N)
{
if(sc[i][j]!='.')
{
OOWP[i] += OWP[j];
all++;
}
}
OOWP[i] /= all;
double RPI = 0.25 * WP[i] + 0.50 * OWP[i] + 0.25 * OOWP[i];
cout<<RPI<<endl;
}
cout<<endl;
}
return 0;
}