#3244. Happy Birthday! 2

0
    ID: 3244 传统题 2000ms 1024MiB 尝试: 0 已通过: 0 难度: 3 上传者: 标签>AtCoderabc200DGESP 7级位运算(复杂)哈希

Happy Birthday! 2

Happy Birthday! 2

题目描述

给定一个长度为 NN 的正整数序列:A=(A1,A2,…,AN)A = (A_1, A_2, \dots, A_N)。判断是否存在一对序列 $B = (B_1, B_2, \dots, B_x), C = (C_1, C_2, \dots, C_y)$ 满足下列所有条件;若存在,请输出一对这样的序列。

1≤x,y≤N1 ≤ x, y ≤ N。 1 \le B_1 < B_2 < \dots < B_{x} \le N。 1 \le C_1 < C_2 < \dots < C_{y} \le N。 BB 和 CC 是不同的序列。 这里,当 x≠yx ≠ y 或存在整数 i (1≤i≤min⁡(x,y))i\ (1 ≤ i ≤ \min(x, y)) 使得 Bi≠CiB_i ≠ C_i 时,我们认为 BB 和 CC 不同。

AB1+AB2+⋯+ABxA_{B_1} + A_{B_2} + \dots + A_{B_x} 与 AC1+AC2+⋯+ACyA_{C_1} + A_{C_2} + \dots + A_{C_y} 在模 200200 意义下相等。

输入格式

输入从标准输入按以下格式给出: NN A1A_1 A2A_2 …\dots ANA_N

输出格式

如果不存在满足条件的序列对 B,CB, C,则输出一行,内容为 NoNo。
否则按如下格式输出你选择的 BB 和 CC: Yes xx B1B_1 B2B_2 …\dots BxB_x yy C1C_1 C2C_2 …\dots CyC_y

判题器对大小写不敏感:你可以使用大写或小写字母。

5
180 186 189 191 218
Yes
1 1
2 3 4

yEs 4 2 3 4 5 3 1 2 5
2
123 523
Yes
1 1
1 2
6
2013 1012 2765 2021 508 6971
No

提示

输入中的所有数值均为整数。 2≤N≤2002 \le N \le 200 1≤Ai≤1091 \le A_i \le 10^9对于 B=(1),C=(3,4)B=(1),C=(3,4),有 A1=180, A3+A4=380A_1 = 180,\ A_3 + A_4 = 380,它们在模 200200 意义下相等。
也有其他被接受的解,例如:
如果不存在满足条件的序列对,则输出一行,内容为 NoNo。

标签: AtCoder|abc200D

来源

AtCoder|abc200D