首页 > 试题广场 >

小欧皇

[编程题]小欧皇
  • 热度指数:1043 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
小欧正在扮演一个中世纪的皇帝。地图上有n个城市,其中有m条道路,每条道路连接了两个城市。
小欧占领了其中一些城市。如果两个城市可以通过若干条道路互相到达,且这些道路经过的城市都是小欧占领的,那么这两个城市之间就可以通过经商获得收益1。请注意,每两个城市之间的收益只会被计算一次。
现在,小欧准备占领一个未被占领的城市,使得总收益最大化。你能帮帮她吗?

输入描述:
第一行输入两个正整数nm,代表城市数量和道路数量。
第二行输入一个长度为n的 01 串。第i个字符为'0'代表小欧未占领该城市,'1'代表小欧占领了该城市。
接下来的m行,每行输入两个正整数uv,代表城市u和城市v有一条道路连接。
1\leq n,m \leq 10^5
u \neq v


输出描述:
输出两个整数,第一个整数代表占领的城市编号,第二个整数代表占领后的收益。
请保证收益的最大化。如果有多种方案收益最大,请输出占领编号最小的城市。
示例1

输入

5 5
01010
1 2
1 3
1 4
4 5
1 5

输出

1 3

说明

占领 1 号城市后,总收益为 3。
1 号城市和 2 号城市经商,1 号城市和 4 号城市经商,2 号城市和 4 号城市经商。

这道题你会答吗?花几分钟告诉大家答案吧!