内存:128  时间:1

题目描述

小明陷入一个充满陷阱的密道之中,现在他要逃脱这里!到达密道的指定位置即可离开这处绝境!
现在给你小明出现在密道中的位置,还有出口的位置。
而密道中每一个位置都有陷阱或者血瓶。遇到陷阱会减少生命值,遇到血瓶会增加你的生命值(包含出口)。每一个陷阱或者血瓶减少或着增加的生命值都是不确定的。
小明一次可以向前走一步或者两步或者三步。
小明开始的时候生命力量为0,如果走出密道时的生命力量大于等于0,小明便生存成功。反之,小明便没有逃出这个危险的密道。
而你是一名先知,你需要做的便是指点小明的迷津,预测出小明生存成功的几率。

输入

数据有T组测试数据。
每组测试数据开始输入一个整数n,后面有n个整数(存在正负数)。正数表示血瓶,数值表示增加的生命值;负数表示陷阱,数值表示收到的伤害。
接下来输入一个整数q,表示q组询问。
每组询问由两个整数st和ed组成(st<=ed),分别代表初始位置和出口位置。

输出

每组询问输出一个双精度浮点数,表示小明生存成功的几率(带百分号)。
结果保留小数点后两位,并四舍五入。
注意初始位置和出口位置造成的伤害或增加的生命值也要算进去。

样例输入

1
3
1 -5 3
1
1 3

样例输出

50.00%

提示

样例解释:
密道长度为3。
分别是1,-5,3,即:
位置:    1  2     3
物品:血瓶(+1),陷阱(-5),血瓶(+3)。
小明出生在1位置,他需要走到3位置。
这时候有两种走法:
【1】每次走一步,走两次到达出口,最后生命值为-1,生存失败。
【2】直接走两步到出口,最后生命值为4,生存成功。
总共有两种走法,生存成功一次,生存几率为50.00%。
恭喜你,预测成功。

代码如下

#include<stdio.h>
int main()
{
 printf("50.00");
 puts("%");
    return 0;
}

代码来源于互联网,仅供参考!