atcoder#ABC200D. [ABC200D] Happy Birthday! 2

[ABC200D] Happy Birthday! 2

题目描述

N N 個の正整数からなる数列 A = (A1, A2, , AN) A\ =\ (A_1,\ A_2,\ \dots,\ A_N) が与えられます。 以下の条件を全て満たす 2 2 つの数列 $ B\ =\ (B_1,\ B_2,\ \dots,\ B_x),\ C\ =\ (C_1,\ C_2,\ \dots,\ C_y) $ が存在するか判定し、存在する場合はひとつ出力してください。

  • 1 < = x, y < = N 1\ <\ = x,\ y\ <\ =\ N
  • 1  B1 < B2 <  < Bx  N 1\ \le\ B_1\ <\ B_2\ <\ \dots\ <\ B_{x}\ \le\ N
  • 1  C1 < C2 <  < Cy  N 1\ \le\ C_1\ <\ C_2\ <\ \dots\ <\ C_{y}\ \le\ N
  • B B C C は、異なる数列である。
    • x  y x\ ≠\ y のとき、または、ある整数 i (1 < = i < = min(x, y)) i\ (1\ <\ = i\ <\ = \min(x,\ y)) が存在して Bi  Ci B_i\ ≠\ C_i であるとき、B B C C は異なるものとする。
  • AB1 + AB2 +  + ABx A_{B_1}\ +\ A_{B_2}\ +\ \dots\ +\ A_{B_x} 200 200 で割った余りと AC1 + AC2 +  + ACy A_{C_1}\ +\ A_{C_2}\ +\ \dots\ +\ A_{C_y} 200 200 で割った余りが等しい。

输入格式

入力は以下の形式で標準入力から与えられる。

N N A1 A_1 A2 A_2 \dots AN A_N

输出格式

条件を満たす数列の組 B,C B,C が存在しない場合、1 1 行に No と出力せよ。 存在する場合、以下の形式で B,C B,C を出力せよ。

Yes x x B1 B_1 B2 B_2 \dots Bx B_x y y C1 C_1 C2 C_2 \dots Cy C_y

なお、正誤判定器は英大文字と英小文字を区別せず、どちらも受理する。

题目大意

给你一个含有 NN 个正整数的序列 AA,请你构造两个序列 BBCC

设这两个序列长度分别为 xxyy,则应满足:

  • 1x,yN1 \leq x, y \leq N
  • 1Bi,CiN1 \leq B_i, C_i \leq N 且两序列均严格递增
  • BBCC 互异
  • $\displaystyle \sum_{i=1}^{x} A_{B_i} \equiv \sum_{j=1}^{y} A_{c_i} (\bmod\space200)$

其中互异的定义:若 xyx\not= yx=yx=y 但存在一个位置 ii 使得 BiCiB_i \not= C_i,则 BBCC 互异。

5
180 186 189 191 218
Yes
1 1
2 3 4
2
123 523
Yes
1 1
1 2
6
2013 1012 2765 2021 508 6971
No

提示

制約

  • 入力はすべて整数
  • 2  N  200 2\ \le\ N\ \le\ 200
  • 1  Ai  109 1\ \le\ A_i\ \le\ 10^9

Sample Explanation 1

B=(1),C=(3,4) B=(1),C=(3,4) とすると、A1 = 180, A3 + A4 = 380 A_1\ =\ 180,\ A_3\ +\ A_4\ =\ 380 となり、この 2 2 つを 200 200 で割った余りは等しくなります。 他にも、以下のような出力も正答として扱われます。 yEs 4 2 3 4 5 3 1 2 5

Sample Explanation 3

条件を満たす数列の組が存在しない場合、1 1 行に No と出力してください。