AT_abc200_d [ABC200D] Happy Birthday! 2
题目描述
给定一个由 N 个正整数组成的数列 A=(A1,A2,…,AN)。请判断是否存在满足以下所有条件的两个数列 B=(B1,B2,…,Bx) 和 C=(C1,C2,…,Cy),如果存在,请输出其中一组。
- 1≤x,y≤N。
- 1≤B1<B2<⋯<Bx≤N。
- 1≤C1<C2<⋯<Cy≤N。
- B 和 C 是不同的数列。
- 当 x=y 时,或者存在某个整数 i (1≤i≤min(x,y)) 使得 Bi=Ci 时,B 和 C 被认为是不同的。
- AB1+AB2+⋯+ABx 除以 200 的余数与 AC1+AC2+⋯+ACy 除以 200 的余数相等。
输入格式
输入以以下格式从标准输入读入。
N A1 A2 … AN
输出格式
如果不存在满足条件的数列组 B,C,请输出一行 No。
如果存在,请按以下格式输出 B,C:
Yes x B1 B2 … Bx y C1 C2 … Cy
判题器对大小写不敏感,均可接受。
输入输出样例 #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
说明/提示
限制
- 输入均为整数。
- 2≤N≤200
- 1≤Ai≤109
样例解释 1
例如,取 B=(1),C=(3,4),则 A1=180,A3+A4=380,这两个数对 200 取余的结果相同。
此外,以下输出也是正确答案之一:
yEs 4 2 3 4 5 3 1 2 5
样例解释 3
如果不存在满足条件的数列组,请输出一行 No。
由 ChatGPT 4.1 翻译