#P1815. Friendship
Friendship
题目描述
在现代社会中,每个人都拥有自己的朋友。由于人们都非常忙碌,他们之间只能通过电话进行交流。可以认为,人能够与人保持联系,当且仅当满足以下条件之一:
- 知道的电话号码;或者
- 知道某人的电话号码,并且能够与保持联系。
题目保证,如果知道的电话号码,那么也一定知道的电话号码(即关系是对称的)。
有时,某些人可能会遇到不幸的事情,导致他们与其他人失去联系。例如,某人可能丢失了电话簿并同时更换了电话号码。
在此问题中,已知个人之间的联系方式。为方便起见,将这个人编号为。给定两个特定的人和,当某些人遭遇不幸时,可能会与失去联系。你的任务是计算出使这种情况发生所需的最少人数。假设不幸事件永远不会发生在或身上。
输入格式
第一行输入包含三个整数()、和(,且)。接下来的行,每行包含个整数。如果第个人知道第个人的电话号码,则第行中的第个数为,否则为。
可以保证输入中的数量不超过。
输出格式
如果无法使与失去联系,则单独一行输出"NO ANSWER!"。否则,第一行输出一个整数,表示你得到的最少人数;如果不为零,则需要第二行,按升序输出个整数,表示遭遇不幸的人的编号,整数之间用单个空格分隔。
如果存在多个解,我们将为每个解计算一个分数,并输出分数最小的解。计算分数的方式如下:假设一个解为(),则分数为$(A_1-1) \times N^t + (A_2-1) \times N^{t-1} + \ldots + (A_t-1) \times N$。题目保证不会有两个解的分数相同。
示例输入
3 1 3
1 1 0
1 1 1
0 1 1
示例输出
1
2
来源
POJ Monthly