配点 : 400 点
問題文
N 個の正整数からなる数列 A=(A1,A2,…,AN) が与えられます。
以下の条件を全て満たす 2 つの数列 $B = (B_1, B_2, \dots, B_x),\ C = (C_1, C_2, \dots, C_y)$ が存在するか判定し、存在する場合はひとつ出力してください。
- 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 で割った余りが等しい。
制約
- 入力はすべて整数
- 2≤N≤200
- 1≤Ai≤109
入力
入力は以下の形式で標準入力から与えられる。
N
A1 A2 … AN
出力
条件を満たす数列の組 B,C が存在しない場合、1 行に No
と出力せよ。
存在する場合、以下の形式で B,C を出力せよ。
Yes
x B1 B2 … Bx
y C1 C2 … Cy
なお、正誤判定器は英大文字と英小文字を区別せず、どちらも受理する。
5
180 186 189 191 218
Yes
1 1
2 3 4
B=(1),C=(3,4) とすると、A1=180, A3+A4=380 となり、この 2 つを 200 で割った余りは等しくなります。
他にも、以下のような出力も正答として扱われます。
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
条件を満たす数列の組が存在しない場合、1 行に No
と出力してください。