「XSOI-R1」凑点
题目描述
小 T 会给你一个长度为 $n$ 的整数数列,你手上有一个数 $x$,初始为 $0$,你可以执行以下操作,使得最终 $x$ 与 $c$ 的差小于 $10^{-4}$。
你可以对 $x$ 进行至多 $k$ 次操作:
- `add i`,对计数器 $x$ 加上 $a_i$,然后 $a_i$ 不能再进行任何操作。
- `sub i`,对计数器 $x$ 减上 $a_i$,然后 $a_i$ 不能再进行任何操作。
- `mul i`,对计数器 $x$ 乘上 $a_i$,然后 $a_i$ 不能再进行任何操作。
- `sqrt i`,将 $a_i$ 赋值为 $\sqrt {a_i}$,每个 $a_i$ 只能开方一次。
- `pow f`,将计数器 $x$ 变为 $x^f$,$f$ 可以为浮点数。
所有 $a_i$ 都必须给 $x$ 进行一次加或减或乘操作。
在运算过程中,$a_i$ 和 $x$ 的值均不能超过 $10^{10}$。题目保证有解,如有多种方案,输出一种即可。
本题精度要求较大,请提高算法的精度。
输入输出格式
输入格式
第一行三个整数 $n$,$k$,$c$。
第二行 $n$ 个整数,表示序列 $a$。
输出格式
第一行一个整数表示总操作数 $g$。
接下来 $g$ 行为你的操作序列。
输入输出样例
输入样例 #1
5 25 3
3 3 3 3 3
输出样例 #1
5
add 1
add 2
sub 3
sub 4
add 5
输入样例 #2
3 9 3
1 3 3
输出样例 #2
5
sqrt 2
sqrt 3
add 1
mul 2
mul 3
输入样例 #3
3 9 77
4 5 4
输出样例 #3
4
add 1
add 2
pow 2
sub 3
说明
**【样例解释 #1】**
- $x$ 加上 $a_1$,此时 $x$ 为 $3$。
- $x$ 加上 $a_2$,此时 $x$ 为 $6$。
- $x$ 减去 $a_3$,此时 $x$ 为 $3$。
- $x$ 减去 $a_4$,此时 $x$ 为 $0$。
- $x$ 加上 $a_5$,此时 $x$ 为 $3$。
**【样例解释 #2】**
- 将 $a_2$ 开根号,此时 $a=[1,\sqrt3,3]$。
- 将 $a_3$ 开根号,此时 $a=[1,\sqrt3,\sqrt3]$。
- $x$ 加上 $a_1$,此时 $x$ 为 $1$。
- $x$ 乘上 $a_2$,此时 $x$ 为 $\sqrt3$。
- $x$ 乘上 $a_3$,此时 $x$ 为 $3$。
**【样例解释 #3】**
- $x$ 加上 $a_1$,此时 $x$ 为 $4$。
- $x$ 加上 $a_2$,此时 $x$ 为 $9$。
- 将 $x$ 变为 $x^2$,此时 $x$ 为 $81$。
- 将 $x$ 减去 $a_3$,此时 $x$ 为 $77$。
### 数据规模与约定
**本题采用捆绑测试。**
- subtask 0(10 pts):$n\leq 5$,$k=n^2$,保证可以使用加与减的运算得到解。
- subtask 1(20 pts):$n \leq 5$,$k=n^2$,保证可以可以使用加、减、乘、开方运算得到解。
- subtask 2(15 pts):$n \leq 10$,$a_i \leq 2$,$k=n+1$。
- subtask 3(55 pts):$k=n+1$。
对于所有数据:$0 \leq n \leq 10^{5}$,$\sum_{i=1}^{n}{a_i} \le 10^{10}$,$0 \leq c\leq 10^{10}$。