CF95E Lucky Country
题目描述
Petya 喜欢幸运数字。众所周知,一个正整数被称为幸运的,当且仅当它的十进制表示不包含除 $4$ 和 $7$ 之外的数字。例如,$47$、$744$、$4$ 是幸运数字,$5$、$17$、$467$ 不是。
有一天晚上,Petya 做了个梦。他梦见自己成了一座岛国的总统。这个国家由若干座岛屿以及双向公路构成。有些岛屿之间即便经过其他岛屿也无法到达,因此这个国家被划分成了若干个区域。更正式地说,每座岛屿恰好属于一个区域,同一区域的任意两座岛屿之间都存在路径,不同区域的任意两座岛屿之间都不存在路径。如果一个区域中岛屿的数量是幸运数字,那么这个区域就是幸运的。
作为总统,Petya 首先决定建造总统府。作为幸运数字的忠实粉丝,他想把总统府建在某个幸运区域里。然而,初始情况下国家也许并没有幸运区域。这时 Petya 可以选择在不同区域之间修建一些道路,从而合并这些区域。请你计算,为了得到一个幸运区域,至少需要修建多少条道路。
输入格式
第一行包含两个整数 $n$ 和 $m$($1 \leq n, m \leq 10^{5}$),分别表示岛屿数和道路数。接下来的 $m$ 行每行包含两个整数 $u$ 和 $v$($1 \leq u, v \leq n$),表示一条连接 $u$ 号和 $v$ 号岛屿的道路。某些道路可能连接同一座岛屿自身,两个岛屿之间也可能存在多条道路。每行数据用一个空格分隔。
输出格式
如果无解,输出“-1”。否则输出所需修建道路的最小数量 $r$,使得可以得到一个幸运区域。
说明/提示
由 ChatGPT 5 翻译