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