Brain teaser 981: Bailing out
From The Sunday Times, 10th May 1981 [link]
The pirate ship “Nancy” had one leaky hold. As long as the water was not allowed to rise above a certain level there was no danger of the ship sinking; so the practice was to allow the water to rise to a mark on the side of the hold which was just below the danger level, and then to send in a team of about 15 or 20 pirates to bale out the hold until it was empty. The water came in continuously at a constant: rate, so the process had, to be repeated regularly.
There were two kinds of baling equipment: practical pans and capacious cans (which emptied the water at different rates), and each pirate who was assigned to baling duty picked up whichever of these was nearest to hand.
One baling party consisting of 11 pirates with practical pans and 6 pirates with capacious cans emptied the hold in 56 minutes. When the water had risen again, the next party of 5 pirates with practical pans and 12 with capacious cans emptied it in 35 minutes. A third party of 15 with practical pans plus 4 with capacious cans took exactly an hour to do the job.
How long would it take a party of 6 with practical pans and 10 with capacious cans?
This puzzle is included in the book The Sunday Times Book of Brainteasers (1994).
[teaser981]






Jim Randell 11:02 am on 6 January 2026 Permalink |
If we treat the volume of water at the point that baling starts as 1 unit, then we can write the following equation for a team with P pans and C cups as:
where:
For the three teams given we get the following equations:
This gives us three equations in three variables, which can be solved to give the rates p, c and f.
We can then calculate the time taken for the 4th team:
The following Python program runs in 74ms. (Internal runtime is 186µs).
from enigma import (Matrix, Rational, printf) Q = Rational() # construct the equations eqs = [ # p c f 1/time ((11, 6, 1), Q(1, 56)), # team 1 (11p + 6c) takes 56 minutes (( 5, 12, 1), Q(1, 35)), # team 2 (5p + 12c) takes 35 minutes ((15, 4, 1), Q(1, 60)), # team 3 (15p + 4c) takes 60 minutes ] (p, c, f) = Matrix.linear(eqs, field=Q) printf("[p={p} c={c} f={f}]") # calculate time for team 4 (6p + 10c) t = Q(1, 6*p + 10*c + f) printf("team 4 takes {t} minutes")Solution: It would take the 4th team 42 minutes to empty the hold.
We get:
So the water is coming in at 11/840 units/min, and a pirate with a pail can empty out 1/840 units/min. So 11 pirates with pails would be able to remove the water at the rate it was coming in. A pirate with a cup can empty 1/336 units/min (so a cup can bail more than a pail), and 2.5 pirates with cups could remove water at the rate it is coming in.
LikeLike