AT_ttpc2023_b.Almost Large

通过率:0%

AC君温馨提醒

该题目为【atcoder】题库的题目,您提交的代码将被提交至atcoder进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

给定一个大小为 NN 的非负整数集合 S={S1,S2,…,SN}S = \{S_1, S_2, \dots, S_N\}。

有一个变量 xx,初始时 x=S1x = S_1。你可以不限次数地进行以下操作:

  • 选择一个 y∈Sy \in S。当且仅当 yy 满足下述条件时,将 xx 赋值为 yy。
    • 条件:将 xx 和 yy 都用三进制表示,记第 3j3^j 位的数字分别为 XjX_j 和 YjY_j。若所有 jj 中满足 Xj>YjX_j > Y_j 的 jj 至多只有 11 个,则可以进行这一步操作。

请判断是否可以通过若干次操作使 x=SNx = S_N。

输入格式

输入以如下格式从标准输入读入:

NN S1S_1 S2S_2 …\dots SNS_N

输出格式

如果可以使 x=SNx = S_N,输出 Yes;否则输出 No。

输入输出样例

  • 输入#1

    2
    21 14

    输出#1

    Yes
  • 输入#2

    2
    12 1

    输出#2

    No
  • 输入#3

    5
    5 15 45 135 405

    输出#3

    Yes

说明/提示

样例解释 1

可以按如下方式从 x=21x = 21 变为 x=14x = 14。

  • 初始时,x=21x = 21。选择 y=14y = 14 并进行操作。
    • xx 和 yy 的三进制表示分别为 (X2,X1,X0)=(2,1,0)(X_2, X_1, X_0) = (2, 1, 0),(Y2,Y1,Y0)=(1,1,2)(Y_2, Y_1, Y_0) = (1, 1, 2)。
    • 满足 Xj>YjX_j > Y_j 的 jj 只有 j=2j = 2,共 11 个,因此允许将 xx 赋为 1414。

样例解释 2

将 x=12x = 12 和 y=1y = 1 用三进制表示,分别为 (X2,X1,X0)=(1,1,0)(X_2, X_1, X_0) = (1, 1, 0),(Y2,Y1,Y0)=(0,0,1)(Y_2, Y_1, Y_0) = (0, 0, 1)。

满足 Xj>YjX_j > Y_j 的 jj 有 j=1,2j = 1, 2 共 22 个,因此不能从 x=12x = 12 赋值为 11。

数据范围

  • 2≤N≤2×1052 \le N \le 2 \times 10^5
  • 0≤Si<3120 \le S_i < 3^{12}
  • 若 i≠ji \ne j,则 Si≠SjS_i \ne S_j
  • 所有输入均为整数。

由 ChatGPT 5 翻译

输入解题思路,AI测评打分。不知道怎么写?

首页