Hide

Problem F
Stacking Curvy Blocks

You’re doing some construction work, and, to save money, you’re using some discount, “irregular” construction materials. In particular, you have some blocks that are mostly rectangular, but with one edge that’s curvy. As illustrated below, you’re going to use these irregular blocks between stacks of ordinary blocks, so they won’t shift sideways or rotate. You’ll put one irregular block on the bottom, with its curvy edge pointing up, and another above it, with it’s curvy edge pointing down. You just need to know how well these blocks fit together. You define the fit quality as the maximum vertical gap between the upper edge of the bottom block and the lower edge of the top block when the upper block is just touching the lower one.

\includegraphics[width=0.8\textwidth ]{blocks}
Figure 1: Block stacking and coordinate system

All blocks are one unit wide. You’ve modeled the curvy edges as cubic polynomials, with the left edge of the block at $x = 0$ and the right edge at $x = 1$.

Input

Each test case is given on two lines, with each line containing four real numbers. The numbers on the first line, $b_0~ b_1~ b_2~ b_3$, describe the shape of the upper edge of the bottom block. This edge is shaped just like the polynomial $b_0 + b_1 x + b_2 x^2 + b_3 x^3$ for $0 \leq x \leq 1$. The numbers on the next input line, $t_0~ t_1~ t_2~ t_3$, describe the bottom edge of the block that’s going on top. This edge is shaped just like the polynomial $t_0 + t_1 x + t_2 x^2 + t_3 x^3$ for $0 \leq x \leq 1$. No input value will have magnitude greater than $50 000$. There are at most 500 test cases. Input ends at end of file.

Output

For each test case, print out a single line giving the fit quality. An answer is considered correct if its absolute or relative error is at most $10^{-7}$.

Sample Input 1 Sample Output 1
1.000000 -12.904762 40.476190 -28.571429
3.000000 11.607143 -34.424603 22.817460
2.000000 -10.845238 16.964286 -10.119048
3.000000 4.190476 -3.571429 2.380952
4.396074
6.999999

Please log in to submit a solution to this problem

Log in