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 翻译