#P13740. [NWERC 2024] Binary Search

[NWERC 2024] Binary Search

Description

给定一个无向图,包含 nn 个顶点和 mm 条边。每个顶点 vv 上写有一个数字 ava_v,该数字为 0011

一次“行走”是指在图中经过一系列顶点 v1v2vkv_1v_2\dots v_k,使得任意相邻的两个顶点之间都有一条边相连。

我们称一个二进制序列

s=s1s2sks = s_1s_2\dots s_k

是“可行走的”,如果存在一次行走 v1v2vkv_1v_2\dots v_k,满足 av1av2avk=sa_{v_1}a_{v_2}\dots a_{v_k} = s

换句话说,如果可以通过在图中行走,并按经过顶点的顺序记录下顶点上的二进制数字,得到序列 ss,则称 ss 是可行走的。

如图 B.1 所示为样例输入 1 的可视化示例。长度不超过 3 的所有二进制序列都是可行走的。

:::align{center}

图 B.1:样例输入 1 的示意图。长度不超过 3 的所有二进制序列都是可行走的。 :::

你的任务是找出最短的不可行走的二进制序列的长度。

Input Format

输入包含以下内容:

  • 第一行包含两个整数 nnmm1n31051 \leq n \leq 3 \cdot 10^50m31050 \leq m \leq 3 \cdot 10^5),分别表示顶点数和边数。
  • 第二行包含 nn 个整数 a1,,ana_1,\dots,a_n(每个 av{0,1}a_v \in \{0, 1\}),表示每个顶点上写的数字。
  • 接下来 mm 行,每行包含两个整数 uuvv1u,vn1 \leq u, v \leq nuvu \neq v),表示顶点 uuvv 之间有一条边。保证任意一对顶点之间至多只有一条边。

Output Format

如果所有的二进制序列都是可行走的,输出 infinity\texttt{infinity}

否则,输出最短的不可行走的二进制序列的长度。

4 4
0 0 1 1
1 2
1 3
2 3
3 4
4
6 7
0 0 1 1 0 1
1 2
3 1
1 4
2 3
4 2
3 4
5 6
infinity
1 0
0
1

Hint

由 ChatGPT 4.1 翻译