**From New Scientist #2490, 12th March 2005**

There are four football teams in our league, each playing each other once in a season. At the end of the season I worked out the league table (with teams in alphabetical order) and consistently replaced digits by letters in some of the entries to give the table below.

Unfortunately I was a bit confused and the points for Albion were based on two points for a win (and one for draw) whereas the others were based on the correct three points for a win.

Which team was top of the league and which was bottom? And which of those two teams (if either) won when they played each other?

[enigma1331]

### Like this:

Like Loading...

This Python program uses the

Football()class from theenigma.pylibrary. It runs in 196ms.Solution:City was top of the league. Albion was bottom of the league. City won the match between the two teams.There are six different sets of scores for the matches that all produce the same table. The outcomes of the matches (win, draw, lose) and the winning margin for each match are the same in each of the six cases, but the actual numbers of goals scored in each match differ.

The outcomes are: AvB, B wins by 1 goal; AvC, C wins by 1 goal; AvD, draw; BvC draw; BvD, D wins by 3 goals; CvD, C wins by 1 goal.

Albion does not win any matches, so the although the first line may have been produced assuming the “2 points for a win” rule the values in it are no different from those produced using the correct “3 points for a win” rule.