在一個小鎮中,該鎮上的居民間存在一些好友關係,這個小鎮的居民非常喜歡告訴別人他所獲得的消息,只要某人得知一個消息,他就會傳播給他所有的好友。此外,這個小鎮上有兩家超級市場:每日鮮超市及撰大前超市,兩家超市經常會爾虞我詐地相互競爭。
有一天,撰大前超市故意放出一個不利於每日鮮超市的消息給一位鎮民甲:說每日鮮超市賣的香瓜很難吃,每日鮮超市派遣在撰大前超市中的密探在第一時間得知這個消息。由於這個小鎮中的居民皆很
單純,只要聽到他的好友告訴他一個消息,他便會信以為真,並會傳播給他的好友;但是他若知道消息為誤傳,便不會再繼續傳播下去。
每日鮮超市為了使不利的消息傳播的範圍減小,在第一時間(假設甲還沒傳播消息出去)希望找到鎮民甲以外的一位鎮民乙,送他一籃香瓜,使得他就算聽到這個不利消息,也不會繼續傳播消息給他的好友。為了使這個謠言防堵的效果達到最好,必須慎選這位要贈送香瓜的鎮民乙,使得最後會獲知此不利消息的鎮民數達到最少。
舉例說明:鎮上有6個鎮民,鎮民編號從正整數1依序表示,而鎮民間的好友關係配對有(1,3), (3,4), (5,1), (2,6), (4,5), (6,3),及(5,3)。若鎮民甲為編號4的鎮民,並挑選編號6的鎮民為防堵對象,最後會獲知此不利消息的鎮民會有{1, 3, 4, 5, 6};挑選編號3的鎮民為防堵對象,最後會獲知此不利消息的鎮民只會有{1, 3, 4, 5},可達到最佳防堵效果。
現在每日鮮超市已握有鎮上的居民間存在的好友關係,給定將散播不利消息的鎮民甲,請你寫一個程式來找出要贈送香瓜的鎮民乙,以及防堵後會獲知此不利消息的鎮民數(包含鎮民甲及鎮民乙)。