[WF2012]Curvy Little Bottles
时间限制:10s 空间限制:128MB
题目描述
Jill在骑车周游Warsaw时,偶然发现一家销售有趣的玻璃瓶的商店。她认为用这些瓶子测量液体可能是一个有趣的计划,但是这需要在瓶子上做一些标记来指示各个体积。这些标记应该如何标在哪里呢?
Jill将问题正式化如下。假设瓶子是由一条从X=Xlow到X=Xhigh的多项式曲线绕X轴旋转一周构成。因此,X轴与一条穿过瓶子底面中心的垂线重合。瓶底在X=Xlow由一个实心圆构成,瓶口在X=Xhigh,瓶口是敞开的。
第一个样例表示瓶子由从Xlow=0到Xhigh=12的多项式4-0.25X构成。瓶子的底部是一个半径为4的圆,瓶口是一个半径为1的圆。瓶子的高度是12。体积每增加25做一次增量标记。
给定多项式P,Xlow,Xhigh,并给定瓶子上连续的两个标记间的体积增量,计算标记与Xlow之间的距离。标记不能被标在瓶口以上的位置,标记的数量不能超过8个。
输入格式
第一行1个整数n,表示多项式的次数。
第二行n+1个数,表示a0,a1,a2…an,为多项式P的实数系数,它们决定了瓶子的形状。 a0为常数项,a1为1次项系数……an为n次项系数。
第三行3个数,Xlow,Xhigh两个实数表示瓶底位置和瓶口位置。inc,一个整数表示每连续两个标记间体积的增量是多少。
输出格式
第一行输出整个瓶子的体积。第二行输出一个长度不超过8的递增序列,依次表示从瓶底开始(不含瓶底)的连续标记距离瓶底的距离。体积和所有标记的距离精确到小数点后两位。如果没有标记,输出” insufficient volume”(不含引号)。
样例输入
1 4.0 -0.25 0.0 12.0 25
样例输出
263.89 0.51 1.06 1.66 2.31 3.02 3.83 4.75 5.87
提示
0<=n<=10,-100<=ai<=100,an不等于0,-100<=Xlow<Xhigh<=100,Xhigh-Xlow>0.1,1<=inc<=500,输入保证所有标记与瓶子顶部的距离不会小于0.01,瓶子的体积不超过1000,四舍五入后任意两个标记间的距离至少为0.05,对于任意X满足Xlow<=X<=Xhigh,P(X)>0。
请不要提交,尚无SPJ
题目来源
没有写明来源