C - Not Say "NO"
Editorial
/
Time Limit: 2 sec / Memory Limit: 1024 MB
配点: 100 点
問題文
まず、以下の問題を読んでください。
1,2,\dots,N の番号のついた N 人の子供がいて、互いに価値の異なるプレゼントが K 個ある。 i 個目のプレゼントの価値は V_i である。 全てのプレゼントを子供たちに分けるとき、全ての子供が最終的に合計で同じ価値のプレゼントを得るようにできるだろうか? 可能なら
YES
と出力し、分け方の一例を示してください。 不可能ならNO
と出力してください。制約
- 1 \le N \le 100
- 2\times N-1 \le K \le 10^4
- 1 \le V_i \le 10^{14}(1 \le i \le K)
- V_i \neq V_j(1 \le i < j \le K)
N,K が与えられるので、この問題のテストケースを解の一例とともに生成してください。
ただし、解がNO
となるケースを生成してはいけません。
なお、この問題においてこの制約のもとでどんな入力でも解が存在することが示せます。
入力
入力は以下の形式で標準入力から与えられる。
N\ K
出力
以下の形式で出力せよ。
V_1\ V_2\ \cdots\ V_K S R_1\ R_2\ \cdots\ R_K
まず、 1 行目に生成したテストケース V_i を出力してください。
次に、テストケースの解である S を出力してください。 S はYES
かNO
である必要がありますが、解がNO
となるケースを生成してはいけません。
最後に、 S がYES
の場合、分け方の一例を示してください。 R_i=X(1\le X \le N) の場合、 i 番目のプレゼントが R_i 番の子供に渡されたことを表します。
入力例 1
3 6
出力例 1
3 5 2 6 4 1 YES 3 2 2 1 3 1
入力例 2
2 5
出力例 2
100 10 20 30 40 YES 2 1 1 1 1