AT_ttpc2023_b Almost Large
题目描述
给定一个大小为 $N$ 的非负整数集合 $S = \{S_1, S_2, \dots, S_N\}$。
有一个变量 $x$,初始时 $x = S_1$。你可以不限次数地进行以下操作:
- 选择一个 $y \in S$。当且仅当 $y$ 满足下述**条件**时,将 $x$ 赋值为 $y$。
- **条件**:将 $x$ 和 $y$ 都用三进制表示,记第 $3^j$ 位的数字分别为 $X_j$ 和 $Y_j$。若所有 $j$ 中满足 $X_j > Y_j$ 的 $j$ 至多只有 $1$ 个,则可以进行这一步操作。
请判断是否可以通过若干次操作使 $x = S_N$。
输入格式
输入以如下格式从标准输入读入:
> $N$ $S_1$ $S_2$ $\dots$ $S_N$
输出格式
如果可以使 $x = S_N$,输出 `Yes`;否则输出 `No`。
说明/提示
### 样例解释 1
可以按如下方式从 $x = 21$ 变为 $x = 14$。
- 初始时,$x = 21$。选择 $y = 14$ 并进行操作。
- $x$ 和 $y$ 的三进制表示分别为 $(X_2, X_1, X_0) = (2, 1, 0)$,$(Y_2, Y_1, Y_0) = (1, 1, 2)$。
- 满足 $X_j > Y_j$ 的 $j$ 只有 $j = 2$,共 $1$ 个,因此允许将 $x$ 赋为 $14$。
### 样例解释 2
将 $x = 12$ 和 $y = 1$ 用三进制表示,分别为 $(X_2, X_1, X_0) = (1, 1, 0)$,$(Y_2, Y_1, Y_0) = (0, 0, 1)$。
满足 $X_j > Y_j$ 的 $j$ 有 $j = 1, 2$ 共 $2$ 个,因此不能从 $x = 12$ 赋值为 $1$。
### 数据范围
- $2 \le N \le 2 \times 10^5$
- $0 \le S_i < 3^{12}$
- 若 $i \ne j$,则 $S_i \ne S_j$
- 所有输入均为整数。
由 ChatGPT 5 翻译