From The Sunday Times, 30th August 1964 [link]
I am the Managing Director of a factory and I have under me five employees. Their names are: Alf, Bert, Charlie, Duggie and Ernie. And their jobs are, not necessarily respectively: Doorkeeper, Doorknob Polisher, Bottle Washer, Welfare Officer and Worker.
There has been some dissatisfaction recently about wages which, in the past, I am bound to admit, have sometimes been rather haphazard. It is clearly very difficult to arrange things in such a way that merit is appropriately rewarded, but it seemed to me important that everybody’s position should at least be clear. After much thought, therefore, I put up the following notice:
Wages:
1. Alf is to get more than Duggie.
2. Ernie is to get 12 per cent more than the Bottle Washer will when he receives the 10 percent rise that he will be getting next month.
3. The Doorknob Polisher is to get 30 per cent more than he used to.
4. Charlie is to get £12 a year less than 20 per cent more than the Welfare Officer.
5. No one is to get less than £200 or more than £600 a year.
6. The Doorkeeper is to get 5 per cent more than he would if he got 10 per cent less than Bert.
Everyone always has received in my factory, receives now, and as long as I am in charge will always receive an exact number of £s per year.
What are the various jobs of my employees, and what yearly wage is each of them to get?
This puzzle is included in the book Sunday Times Brain Teasers (1974). The puzzle text above is taken from the book.
[teaser177]
Jim Randell 9:14 am on 25 October 2022 Permalink |
If John ends up with L packs of lilies, F packs of floating plants and X packs of oxygenating plants, then we have:
And if he started out by buying a total of N packs, and selling some (at 25% markup) to cover the cost of the initial purchase, then we have:
And if he initially purchased n plants of each type we have:
This Python program runs in 56ms. (Internal runtime is 210µs).
Run: [ @replit ]
from enigma import (express, div, printf) # consider the make up of the 50 remaining plants # L = lily packs, F = floating packs; X = oxygenating packs # 2L + 4F + 8X = 50 for (L, F, X) in express(50, (2, 4, 8)): # there are fewer lilies than any other type of plant if not (2 * L < min(4 * F, 8 * X)): continue # calculate the initial number of packs bought N = 5 * (L + F + X) # calculate the initial number of plants of each type bought n = div(8 * N, 7) if n is None: continue # output solution (final number of lily plants) printf("{x} lily plants [L={L} F={F} X={X} -> N={N} n={n}]", x=2 * L)Solution: 14 of the remaining 50 plants were lilies.
Initially John bought 80 of each type of plant (240 plants in total) = 10 packs of oxygenators + 20 packs of floating plants + 40 packs of lilies.
Of these 70 packs he sold 8 packs of oxygenators + 15 packs of floating plants + 33 packs of lilies. Leaving him with 14 packs.
The sale of these 56 packs at a 25% markup exactly met the initial cost of the 70 packs.
Leaving John with 2 packs of oxygenators (= 16 plants) + 5 packs of floating plants (= 20 plants) + 7 packs of lilies (= 14 plants). A total of 50 plants.
LikeLike