立方体悬浮在太空中。笛卡尔坐标系的定义是,其原点位于立方体的一个底角,如图所示。立方体具有侧维度d,因此其对角位于坐标(0,0,0)和(d,d,d)。坐标系的正z方向相对于重力为“向上”。
立方体的内部包含在每个维度上具有均匀间距的分区,因此立方体被划分为大小相等的个迷你立方体。隔墙薄且防水,每个小立方体都装满了水。所有小立方体中的总水量为。
枪发射的子弹可能会击中立方体。枪口位于点(x1、y1、z1)。点(x2,y2,z2)是子弹路径上定义子弹方向的点。子弹不会打碎立方体,但只要子弹碰到立方体的侧面或内部隔板,就会形成一个小孔。弹孔可以在内部迷你立方体的侧面、边缘或角落中形成。受重力影响,水可能会通过这些小孔泄漏。收集并测量从大立方体中漏出的所有水。
输入:
输入数据集由几个试验组成。每个试验由八个整数描述。如上所述,第一个整数是n(n50)。第二个整数是d(d100)。其余六个整数—x1,y1,z1,x2,y2,z2—表示项目子弹上的原点和点(-100x1,y1,z1,x2,y2,z2100)。子弹的起点和路径上的点不相同。最后一次尝试后,整数0终止数据集。
输出:
您的程序必须计算从大立方体中漏出的总水量。对于每次试验,打印试验编号、符号Volume =,以及水的总体积,精确到小数点右侧的两位数字。在两次试验之间打印一个空行。
提示:
在这个问题中,如果两个实数之间的间隔小于1e-6,则认为它们相等。
in put
2 20 0 0 0 10 10 10
2 20 0 0 0 10 10 0
2 20 0 0 0 0 10 0
2 20 0 0 10 10 10 10
2 20 10 0 10 10 5 10
2 20 5 5 0 5 5 10
2 20 7 15 91 20 20 20
5 25 5 15 0 5 15 100
3 30 0 -35 0 3 -25 3
10 16 8 17 11 12 19 60