AT_wtf19_a Magic
题目描述
魔术师在表演,现在他有 $N(2 \leq N \leq 50)$ 个箱子,其中一个有宝藏。魔术师会随机打乱这些箱子,此后箱子顺序不变,你的任务是在这 $N$ 个箱子中找到有宝藏的那个。
但是,在你找宝藏的过程中,会有一些特殊的限制和操作:
- 你只能一个箱子一个箱子打开,且打开一个箱子后必须在打开另外一个之前关闭它。
- 每一个箱子最多能打开 $a_i(1 \leq a_i \leq 100)$ 次。
- 魔术师会在你找宝藏的过程中最多做 $K(1 \leq K \leq 50)$ 后文所述的操作:**除了在你正在打开箱子的时候**,他可能会将宝藏从一个箱子移动到另外一个箱子中。也就是说,他可能会在你打开一个箱子之前、关闭一个箱子并打开下一个中间这段时间这两种情况中移动宝藏位置。
请输出一种方案,确保你能找到宝藏,如果没有这样的方案,输出 `-1`。
否则,第一行输出一行一个正整数 $Q$ 表示打开箱子顺序的总长度(即你打开箱子的总次数)。
第二行输出一行 $Q$ 个正整数,表示你的打开箱子顺序。
输入格式
第一行两个正整数 $N$ 和 $K$ 分别表示箱子个数和魔术师能移动宝藏的次数。
第二行输入 $N$ 个正整数 $a_i$ 表示每个箱子你最多能打开的次数。
输出格式
問題の答えが No であれば、`-1` とのみ出力せよ。
そうでなければ、すぬけ君が取りうる戦略をひとつ以下の形式で出力せよ。
> $ Q $ $ x_1 $ $ x_2 $ $ \cdots $ $ x_Q $
これは、箱 $ x_1,\ x_2,\ \cdots,\ x_Q $ をこの順に開けることを表す。
複数の解が考えられる場合は、そのうちのどれを出力してもよい。
说明/提示
### 制約
- $ 2\ \leq\ N\ \leq\ 50 $
- $ 1\ \leq\ K\ \leq\ 50 $
- $ 1\ \leq\ a_i\ \leq\ 100 $
### Sample Explanation 1
$ 1\ \rightarrow\ 1\ \rightarrow\ 2\ \rightarrow\ 1\ \rightarrow\ 2\ \rightarrow\ 2\ \rightarrow\ 1 $ の順に $ 7 $ 回箱を開ければ、財宝の初期位置やマジシャンがどのように財宝を移動させるかによらず、必ず財宝を見つけることができます。