[ABC200D] Happy Birthday! 2
题意翻译
给你一个含有 $N$ 个正整数的序列 $A$,请你构造两个序列 $B$ 和 $C$。
设这两个序列长度分别为 $x$ 和 $y$,则应满足:
- $1 \leq x, y \leq N$
- $1 \leq B_i, C_i \leq N$ 且两序列均严格递增
- $B$ 与 $C$ 互异
- $\displaystyle \sum_{i=1}^{x} A_{B_i} \equiv \sum_{j=1}^{y} A_{c_i} (\bmod\space200)$
其中互异的定义:若 $x\not= y$ 或 $x=y$ 但存在一个位置 $i$ 使得 $B_i \not= C_i$,则 $B$ 与 $C$ 互异。
题目描述
[problemUrl]: https://atcoder.jp/contests/abc200/tasks/abc200_d
$ N $ 個の正整数からなる数列 $ A\ =\ (A_1,\ A_2,\ \dots,\ A_N) $ が与えられます。 以下の条件を全て満たす $ 2 $ つの数列 $ B\ =\ (B_1,\ B_2,\ \dots,\ B_x),\ C\ =\ (C_1,\ C_2,\ \dots,\ C_y) $ が存在するか判定し、存在する場合はひとつ出力してください。
- $ 1\ <\ = 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 $
- $ B $ と $ C $ は、異なる数列である。
- $ x\ ≠\ y $ のとき、または、ある整数 $ i\ (1\ <\ = i\ <\ = \min(x,\ y)) $ が存在して $ B_i\ ≠\ C_i $ であるとき、$ B $ と $ C $ は異なるものとする。
- $ A_{B_1}\ +\ A_{B_2}\ +\ \dots\ +\ A_{B_x} $ を $ 200 $ で割った余りと $ A_{C_1}\ +\ A_{C_2}\ +\ \dots\ +\ A_{C_y} $ を $ 200 $ で割った余りが等しい。
输入输出格式
输入格式
入力は以下の形式で標準入力から与えられる。
> $ N $ $ A_1 $ $ A_2 $ $ \dots $ $ A_N $
输出格式
条件を満たす数列の組 $ B,C $ が存在しない場合、$ 1 $ 行に `No` と出力せよ。 存在する場合、以下の形式で $ B,C $ を出力せよ。
> Yes $ x $ $ B_1 $ $ B_2 $ $ \dots $ $ B_x $ $ y $ $ C_1 $ $ C_2 $ $ \dots $ $ C_y $
なお、正誤判定器は英大文字と英小文字を区別せず、どちらも受理する。
输入输出样例
输入样例 #1
5
180 186 189 191 218
输出样例 #1
Yes
1 1
2 3 4
输入样例 #2
2
123 523
输出样例 #2
Yes
1 1
1 2
输入样例 #3
6
2013 1012 2765 2021 508 6971
输出样例 #3
No
说明
### 制約
- 入力はすべて整数
- $ 2\ \le\ N\ \le\ 200 $
- $ 1\ \le\ A_i\ \le\ 10^9 $
### Sample Explanation 1
$ B=(1),C=(3,4) $ とすると、$ A_1\ =\ 180,\ A_3\ +\ A_4\ =\ 380 $ となり、この $ 2 $ つを $ 200 $ で割った余りは等しくなります。 他にも、以下のような出力も正答として扱われます。 ``` yEs 4 2 3 4 5 3 1 2 5 ```
### Sample Explanation 3
条件を満たす数列の組が存在しない場合、$ 1 $ 行に `No` と出力してください。