【题目描述】
有n个人围着圆桌坐成一圈,按顺时针顺序依次标为1~n号。对于i(1 < i < n)号来说,其左边为i+1号,右边为i-1号,1号右边为n号,n号左边为1号。
每轮游戏会指定一个坐在圆桌边的人(设为i号),使其向左边的人(设为j号)发起挑战,若挑战成功,则j离开圆桌,若挑战失败,则i离开圆桌,当圆桌边只剩下一个人时,则其为最终胜利者。
现已知,对于任意两个人i号、j号,若i向j发起挑战,结果是成功还是失败。假设每轮游戏可以随意指定发起挑战的人,询问哪些人可以成为最终胜利者。
【输入描述】
第一行输入一个整数n,表示参加游戏的人数;
接下来n行,每行输入n个0或1,若第i行第j列为1,则表示i向j发起挑战会成功,否则表示挑战会失败,第i行第i列的值为0。
【输出描述】
输出一行数,表示可能成为最终胜利者的人的标号,标号按从小到大的顺序输出。
【输入样例】
3
0 1 0
0 0 1
0 1 0
【输出样例】
1 3
【数据范围及提示】
样例解释:
(1)先指定2号向3号发起挑战,3号离开;再指定1号向2号发起挑战,2号离开。此时1号是最终胜利者;
(2)先指定1号向2号发起挑战,2号离开;再指定1号向3号发起挑战,1号离开。此时3号是最终胜利者;
(3)无论如何安排挑战顺序,2号都无法成为最终胜利者。
对于30%的数据,n ≤ 7;
对于100%的数据,n ≤ 100。
时间: 2024-10-10 14:13:18