#aBC200Did302. [ABC200D] Happy Birthday! 2

[ABC200D] Happy Birthday! 2

AT_abc200_d [ABC200D] Happy Birthday! 2

题目描述

给定一个由 NN 个正整数组成的数列 A=(A1,A2,,AN)A = (A_1, A_2, \dots, A_N)。请判断是否存在满足以下所有条件的两个数列 B=(B1,B2,,Bx)B = (B_1, B_2, \dots, B_x)C=(C1,C2,,Cy)C = (C_1, C_2, \dots, C_y),如果存在,请输出其中一组。

  • 1x,yN1 \leq x, y \leq N
  • 1B1<B2<<BxN1 \leq B_1 < B_2 < \dots < B_x \leq N
  • 1C1<C2<<CyN1 \leq C_1 < C_2 < \dots < C_y \leq N
  • BBCC 是不同的数列。
    • xyx \neq y 时,或者存在某个整数 i (1imin(x,y))i\ (1 \leq i \leq \min(x, y)) 使得 BiCiB_i \neq C_i 时,BBCC 被认为是不同的。
  • AB1+AB2++ABxA_{B_1} + A_{B_2} + \dots + A_{B_x} 除以 200200 的余数与 AC1+AC2++ACyA_{C_1} + A_{C_2} + \dots + A_{C_y} 除以 200200 的余数相等。

输入格式

输入以以下格式从标准输入读入。

NN A1A_1 A2A_2 \dots ANA_N

输出格式

如果不存在满足条件的数列组 B,CB, C,请输出一行 No
如果存在,请按以下格式输出 B,CB, C

Yes xx B1B_1 B2B_2 \dots BxB_x yy C1C_1 C2C_2 \dots CyC_y

判题器对大小写不敏感,均可接受。

输入输出样例 #1

输入 #1

5
180 186 189 191 218

输出 #1

Yes
1 1
2 3 4

输入输出样例 #2

输入 #2

2
123 523

输出 #2

Yes
1 1
1 2

输入输出样例 #3

输入 #3

6
2013 1012 2765 2021 508 6971

输出 #3

No

说明/提示

限制

  • 输入均为整数。
  • 2N2002 \leq N \leq 200
  • 1Ai1091 \leq A_i \leq 10^9

样例解释 1

例如,取 B=(1),C=(3,4)B=(1), C=(3,4),则 A1=180,A3+A4=380A_1=180, A_3+A_4=380,这两个数对 200200 取余的结果相同。
此外,以下输出也是正确答案之一:

yEs 4 2 3 4 5 3 1 2 5

样例解释 3

如果不存在满足条件的数列组,请输出一行 No

由 ChatGPT 4.1 翻译