在Byteland的安全局(BSA)里有职员和指挥官俩种等级。任一员工的资料都可在档案库里找到。在属于每个员工的文件夹中,都有一份Signatures,Signatures是其他的员工(职员或者指挥官)为他的忠诚所做的保证。每一新雇的职员都必须至少得到一份保证,但随着时间推移,保证人也会增加。BSA最近发现,在他们的指挥官的圈子里已经有来自敌方Microsoftland的间谍的渗入。那么,BSA接下来就会雇佣其他的间谍作为他的职员由于这个间谍指挥官的保证或者其他雇佣间谍的保证。这些间谍有专门来自间谍员工的保证。
我们说一个职员的可信度值得怀疑,如果他没有获得任何一个不是间谍的指挥官的间接保证。即不存在这样的员工序列p1, p2,..., pk,其中p1为一不是间谍的指挥官,对于员工pk (for i=1,..., k-1),pi为pi+1作保证。
如果我们假定一个指挥官是间谍,则使得他所担保的职员被怀疑是间谍。BSA司令部急须知到这些职员的名单。
举例
指挥官: 阿莉斯,Gregor
职员:
鲍勃(阿莉斯保证),查利(鲍勃保证),戴维(鲍勃,并且查利保证),伊夫(阿莉斯和Gregor保证),夫兰克(伊夫保证),亨利(Gregor和Isabelle保证),Isabelle(Gregor和亨利保证)。
怀疑对象:
鲍勃,查利,戴维,亨利,Isabelle。
要求
写一程序:
1、 读入BSA的指挥官和职员人数以及作担保的信息;
2、 计算确定被怀疑为间谍的职员的名单表;
3、 结果输出