Baltic Olympiad in Informatics, April 23-27, 2003, Tartu, Estonia

Barrel

Some amount of water is poured into a barrel, then a number of cubes of different size and density are put into water. Finally, a lid is put onto the barrel and pushed down until it touches the edges of the barrel.

Write a program to compute the resulting water level in the barrel.

It can be assumed that:

Input data

The first line of the input file BARREL.IN contains three real numbers --- the bottom area of the barrel, S (0 < S ≤ 1000), the height of the barrel, H (0 < H ≤ 1000), and the volume of water, V (0 < V ≤ S∙H). The next line contains the number of cubes, N (0 < N ≤ 1000). It is followed by N lines, each containing two real numbers describing a cube --- the length of a side of the cube, L (0 < L ≤ 1000), and the density of the cube, D (0 < D ≤ 10).

Output data

The first and only line of the output file BARREL.OUT must contain one real number --- the resulting water level. The output must not differ from the correct value by more than 10-4.

Sample

BARREL.IN BARREL.OUT
100 10 500
1
1 0.5
5.0050