SP196 MUSKET - Musketeers

题目描述

#### 题目背景 在路易十三与红衣主教黎塞留的时代,$n$个火枪手已经吃完了饭,正在一起喝酒。葡萄酒的供应很充足导致醉酒的火枪手们发生了争执,一场醉酒的争执爆发,每个火枪手都冒犯了其他所有人。 决斗已经不可避免了,但是谁应该与谁,以及应该以什么顺序进行决斗?他们决定(在自从他们成为战友以来的第一次决斗中)围成一个圆圈并按顺序抽签。一个抽到签的火枪手与右边的人进行决斗。失败者,用不那么血腥的话来讲,“退出游戏”,切确地说,他的尸体被仆人带走了。站“退出游戏”的人旁边的下一个火枪手成了胜利者的邻居。 多年以后,当历史学家阅读胜利者所撰写的回忆录时,他们意识到最终结果在很大程度上依赖于决斗的顺序。他们注意到平时的训练已经表明了谁能够赢得决斗。似乎(在数学语言中)“A 能战胜 B”的关系不是传递性的!这就意味着,可能会发生火枪手A战胜B,B战胜C和C战胜A。当然,其中三个中的第一个决斗影响了最终结果。如果A和B作为第一个战斗,C最终胜出。但如果B和C作为第一个战斗,A终于获胜。历史学家着迷于他们的发现,并决定设法验证哪些火枪手可能存活下来。法国和整个文欧洲明的命运皆取决于此! 现在有$n$个人,他们按照逆时针顺序围成一圈。他们要进行$n-1$场决斗。 在第一轮中,这些人中的第$i$人与右边的邻居决斗,即与编号为$i + 1$的人(如果$i=n$,那么则与第$1$个人决斗)。 失败者“退出游戏”,圆圈缩小,站“退出游戏”的人旁边的下一个人成了胜利者的邻居。我们以矩阵的形式给出了可能的决斗结果。 如果$A_{i,j} = 1$那么第$i$个人与第$j$个人决斗时,第$i$个人获胜。 $A_{i,j} = 0$则反之。我们可以说,一定存在一个数$k$,第$k$人可以赢得比赛,赢得最后的胜利。 写一个程序: 从标准输入中读取矩阵$A$, 计算可能赢得比赛的人, 将它们写入标准输出。

输入格式

第一行,一个整数$t$,表示总共有$t$组数据 在每组数据中,第一行输入一个整数$n$,表示有$n$个火枪手 接下来的$n$行中,每行有$n$个数(不含空格),第$i$行的第$j$个数为$A_{i,j}$的值。当然$A_{i,j} = 1 - A_{j,i}$。我们约定对于每一个$i$,$A_{i,i} = 1$

输出格式

对于每组数据,第$1$行应输出一个数$m$,表示可能胜出的人数 接下来的$m$行中,每行$1$个数,表示胜利者的编号

说明/提示

$3