As motivation, a Space Craft known as the Mars Climate Orbiter failed in the year 1999.
The failure occurred because the distinction between pound-force seconds and newton-seconds was made as an comment, instead of being part of the code itself.
Suppose that a student created a generic class (also known as a template class) to resolve the problem of mistakes in scientific units such as those seen in the code-base for the Mars Climate Orbiter.
Uni<float> solar_panel = Uni<float>(20.9, "libras pondos");
Uni<float> body = Uni<float>(45.1, "kilograms");
Craft myCraft = new Craft(solar_panel, body);
craft.get_mass();
Informally, suppose that we have somthing like...
craft.mass == craft.solar_panel + craft.body
kilograms of total mass
is (pounds
for the body) plus (kilograms
for the wings).
The addition operator +
is overloaded for Uni<float>
, Uni<int>
, etc... such that when we add pound to kilograms the result is correct.
However, people get tired of writing "kilograms/metre"
and they begin typing "kg/m"
.
We allow any sub-sequence of "meter"
to match "meter"
so long as the subsequence is not also a subsequence of some other name of a scientific unit.
Anyway... the question is, what non-empty sub-sequences for names of scientific units are a sub-sequence of the name of a different scientific unit in the following list?
ACRES
AMPERES
ANGSTRÖMS
BASE BALLS
BASKET BALLS
CANDELAS
CENTIMETERS
CENTIMORGANS
COULOMBS
CUPS
CURIES
DALTONS
DARCIES
DEBYES
DECIBELS
DEGREES
DEGREES CELCIUS
DEGREES FAHRENHEIT
DEGREES KELVIN
DOBSONS
EOTVOS
FARADS
FERMIS
FEWS
FIELDS
FLUID OUNCES
GALLONS
GAUSSES
GETS
GILBERTS
GLASSES
GOLF BALLS
GRAMS
HENRIES
HERTZ
HOUNSFIELDS
INCHES
JOULES
JUGS
KILOGRAMS
KILOGRAMS
LANGLIES
LIBRAS PONDOS
LANGMUIRS
LITERS
MAXWELLS
METERS
MILES
NEWTONS
OERSTEDS
OUNCES
OUNCEZ
PASCALS
PINTS
POUNDS
QUARTS
RADIANS
RICHTERS
RÖNTGENS
SECONDS
SHARPENERS
SIEMENS
STOKES
SVEDBERGS
TABLE SPOONS
TEA SPOONS
TESLAS
THERMAL UNITS
TONNES
TONS
TORRES
VOLTS
WATTS
WEBERS
YARDS