Задача Бочка (BARREL)
Имеется бочка с некоторым количеством воды. В бочку опускают заданное количество брусков в форме куба разных размеров и плотности. Затем сверху опускают крышку так, что она касается краев бочки.
Нужно определить получаемый уровень воды.
Предполагается, что плотность воды равна 1.0; присутствие воздуха можно не учитывать; все бруски целиком влезают в бочку; бруски располагаются в воде вертикально и не касаются друг друга.
Напишите программу BARREL, которая читает с клавиатуры: три вещественных числа - площадь дна бочки S, высоту бочки H, объем воды V, затем количество брусков N и далее N пар вещественных чисел - длины сторон кубов Lx и их плотности D x. Программа должна вывести на экран вещественное число X - уровень воды в бочке после добавления брусков. Это число нужно определить с точностью до ε =10 -4.
Ограничения:
0<= S <= 1000.0, 0<= H <= 1000.0, 0<= V <= S*H
0<= N <= 1000, 0<= Lk <= 1000.0,
0<= Dk <= 10.0 (k = 1,2,...,N)
Формат ввода/вывода:
Ввод:
S H V
N
L1 D1
L2 D2
...
LN DN
| Вывод: X
|
Пример:
Ввод:
100.0
10.0
500.0
1
1.0 0.5
|
Вывод: 5.0050
| |