#J18P3. 决斗
决斗
题目描述
Michel 最近迷上了买彩票。某赌场就一轮决斗的结果开设了赌局。在进行了详尽的市场调查后,Michel 拿到了任意两个选手对决后的胜负情况。可以假定正式比赛中对决的结果也与此相同。
决斗的规则如下:开始时, 名选手围成一个圆圈,每名选手编号为 。第 名选手右边是第 名选手,第 名选手右边是第 名选手,依此类推,第 名选手右边是第 名选手。
每一回合,系统随机抽取一名选手,令其与右边的选手进行决斗。战败的选手退出圆圈。例如,若第 名选手战败,则第 名选手右边将直接变成第 名选手。对决将一直进行,直到只剩下一名选手为止。
现在,请你帮助 Michel 判断:哪些选手有可能成为最终的胜者(即存在某种对决顺序,使得该选手最终留在场上)。
输入格式
第一行包含一个整数 ,表示选手的人数。
接下来 行,每行包含 个整数,描述任意两名选手之间的对决结果。第 行第 列的整数表示第 名选手与第 名选手对决的结果:为 表示第 名选手失败,为 表示第 名选手获胜。输入数据保证 时该值为 ,且对任意 ,该矩阵与转置位置的值不会同时为 (即胜负关系是确定的)。
输出格式
第一行输出一个整数 ,表示有可能获胜的选手数量。
接下来 行,每行一个整数,按编号升序输出可能获胜的选手编号。
样例
2
0 0
1 0
1
2
样例解释
共有 名选手。第 名选手与第 名选手对决时,第 名选手必定失败,第 名选手必定获胜。无论随机抽取的顺序如何,第 名选手都会在第一场或最后一场被淘汰,因此只有第 名选手可能获胜。故可能获胜的选手数量为 ,即编号 。
数据范围
- 胜负矩阵中的整数只可能为 或 。