Long version of the problem.
Information about the winner and the solution
Back to the list of problems.
My car dashboard (and probably yours) has two mile-measuring things on it: A) an odometer that measures how many miles my car has traveled since it was born; [_][_][_][_][_][_] <-- this is A B) a "trip" odometer that measures how many miles the car has traveled since I last reset it to zero by pushing a button. [_][_][_][_] * <-- this is B (* is the reset button!) the button works fine ... and resets B to 0000 when I push it. (I had it fixed since the original odometer problem in 1993!) Well, I often look at my dashboard, and the other day it looked like: 1 2 3 4 5 6 (total miles travelled) 1 3 6 2 * (miles since last reset) The numbers on top were all different. I was truly amazed but disappointed that those on the bottom were not "7890". Obviously, I should have hit the reset button back at 115566 ... but I didn't. So, when should I NEXT press the reset to make 10 different numbers appear at the earliest possible time??? When it wasn't obvious how to figure this out ... I thought this might be worthy of a POTM! You'll be given a bunch of starting points (A mileages) and asked to find when to reset to achieve the earlist possible point at which ten different digits appear on the odometers. Your C, C++, PERL, JAVA, or SHELL program will read a file of starting odometer readings and you will output a corresponding set of mileages.