栗酱在玩一个激燃的战争游戏,游戏里有n个据点,据点之间存在一些道路,将据点两两连通, 栗酱已经占据了一些据点,在他/她占领的每个据点中,他/她都至少安排了一个士兵,他/她可以在相邻的己方据点间移动任意士兵任意次, 如果一个据点没有栗酱的士兵,说明这个据点是属于敌方的, 现在在敌人的进攻之前,栗酱希望能够集中兵力防守,所以要把所有士兵调集到直接和敌人相邻的据点,
栗酱在玩一个激燃的战争游戏,游戏里有n个据点,据点之间存在一些道路,将据点两两连通。 栗酱已经占据了一些据点,在他/她占领的每个据点中,他/她都至少安排了一个士兵,他/她可以在相邻的己方据点间移动任意士兵任意次。 如果一个据点没有栗酱的士兵,说明这个据点是属于敌方的。 现在在敌人的进攻之前,栗酱希望能够集中兵力防守,所以要把所有士兵调集到直接和敌人相邻的据点。 但是他/她想让你写个程序算一下这样安排之后,所有与敌人结点直接相邻的己方结点的士兵数中的最小值最大是多少。 为了避免一个己方据点成为敌方据点,每个据点至少需要保留一名士兵,注意士兵移动只能由己方据点到达相邻己方据点,不能穿越敌方据点。 有些时候也会出现没有敌方结点,或者没有己方据点,或者没有敌方据点和己方据点连通的简单情况,对于这种情况,你的程序应该能及时识别出来,并给出"−1"(不包括引号)。