#XMOJ10972. 格斗淘汰赛

格斗淘汰赛

说明

时间限制:1 Sec 内存限制:256 MB 输入文件knockout.in 输出文件knockout.out

$16$ 名格斗家将以 1v1 的淘汰赛形式展开角逐。格斗家编号为 $1$ 至 $16$。格斗家之间存在对战相性,任意两名格斗家对战的胜负结果由给定表格确定。

淘汰赛的赛制为完全二叉树结构,即每轮两两对决,胜者晋级下一轮,直至决出冠军)。

为测算每位格斗家的夺冠概率,需进行如下模拟:考虑所有可能的第一轮对战组合,对每种组合均完整模拟至决赛结束。

请输出格斗家 $1$ 至 $16$ 各自的夺冠次数,每位格斗家的结果占一行。

注:第一轮的“对战组合”判定规则为——即使对战双方相同,只要第一轮的排列顺序不同,即视为不同组合。也就是说,第一轮的组合总数为 $16!$ 种。

输入格式

输入为 $16$ 行 $16$ 列的整数表格,用于表示格斗家的对战胜负规则:

若要查询格斗家 $i$ 与格斗家 $j$ 的对战结果,需查看表格的第 $j$ 行第 $i$ 列 $a[j][i]$:

  - 若 $a[j][i] = 1$ → 格斗家 $j$ 获胜;

  - 若 $a[j][i] = -1$ → 格斗家 $i$ 获胜。

表格的左下部分($j < i$ 的区域)为填充用的无效数据 $0$,仅 $j > i$ 的部分数据有效。

输出格式

依次输出格斗家 $1$ 至 $16$ 的夺冠次数,每位格斗家的结果占一行。

样例

样例 1

0 1 -1 -1 -1 1 -1 -1 1 1 -1 1 1 1 1 1
0 0 1 1 -1 1 1 -1 1 1 -1 -1 -1 1 1 1
0 0 0 1 -1 -1 -1 -1 -1 -1 -1 1 1 1 1 -1
0 0 0 0 -1 1 -1 1 -1 1 1 1 -1 1 -1 -1
0 0 0 0 0 1 -1 1 -1 -1 1 -1 -1 1 -1 -1
0 0 0 0 0 0 1 -1 1 -1 1 1 1 1 -1 1
0 0 0 0 0 0 0 1 1 1 1 1 1 1 -1 1
0 0 0 0 0 0 0 0 1 -1 -1 1 1 -1 1 -1
0 0 0 0 0 0 0 0 0 1 1 -1 -1 1 1 -1
0 0 0 0 0 0 0 0 0 0 1 -1 1 1 -1 1
0 0 0 0 0 0 0 0 0 0 0 1 1 -1 1 1
0 0 0 0 0 0 0 0 0 0 0 0 1 -1 1 -1
0 0 0 0 0 0 0 0 0 0 0 0 0 1 -1 1
0 0 0 0 0 0 0 0 0 0 0 0 0 0 -1 1
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

1613069320192
2902313238528
119390961664
507047542784
1339820638208
1069828669440
7688706785280
1315405791232
367798026240
590398128128
1159765950464
311637147648
146366988288
7884701696
1659518025728
123837972480

样例说明:

输入为 16×1616×16 的胜负表格。

输出中,格斗家 $1$ 的夺冠次数为 $1613069320192$ 次;所有格斗家的夺冠次数之和等于 $16!$。