ODOMETER FUN

When's the next time all the numbers on your odometer will be different???

******* HERE IT IS - THE HALLOWEEN PROGRAMMER OF THE MONTH (POTM) *******
	(this one is easy (ha!) so I expect EVERYONE to enter!!!)

   ******* THE ODOMETER CHALLENGE - deadline 10/31/93 at 23:59EST *******

My dashboard (vintage 1986 Oldsmobile Custom Cruiser wood-grained wagon)
	has two mile-measuring thingys 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 set it to zero by pushing a button.

                      [_][_][_][_]  *    <-- this is B  (* is the button!)

   But the button is broken, and I can no longer reset it to 0000 !

Well, I often look at my dashboard, and the other day it looked like:

                 9  0  5  8  7  4
                       1  3  6  2  *

 The numbers were all different.  I was truly amazed.  I wondered how far
 I would have to travel before this happened again.  When it wasn't obvious
 how to figure this out ... I thought this might be worthy of the POTM crew!

========= IF YOU'RE INTERESTED ... READ ON FOR THE GORY DETAILS.  IF NOT,
========= MAYBE WE'LL GET YOU INTERESTED IN THE NEXT POTM !!!!

    Ahhhh ... reading on are we????    GREAT!

1.  You must write a program that will take a file path as the input argument.

2.  The input file will contain (at most) 1000 lines.

3.  Each line of the input file contains two numbers as follows:
		ABCDEF GHIJ
    Where ABCDEF represents the odometer, and GHIJ represents the trip odometer,
	they are separated by a space and the line ends with a C/R.

4.  Your program must output a single line of output for each input line
	which tells me how many miles I have to go before my odometers
	(together) display all 10 digits!

5.  The winner is the program that finds the 1000 correct (smallest) 
	solutions to the 1000 situations described in a final test file.
	
	Ties will be decided based on speed and on size of the source code.

There.  Wasn't that much easier than the LAST POTM???  No excuse not to enter
this one is there???  Why, you can practically see your name on the coveted
Programmer Of The Month trophy can't you????

==========  The fine print ....

1.  You can write in any language you want, using any tools you want, as
	long as I can get it to compile on my machine ... homxb (an Amdahl).
	(But if I think you're cheating ... I'll simply disqualify you!!!)

2.  ABCDEF and GHIJ will all be chosen from [0-9] .... there will be a single
	space between the two strings.  Leading zeroes will be given.

3.  About my odometers:

	a) forget about tenths of miles ... assume everything is miles
		("012345 0000" implies 12,345 miles ... it's just easier ...
		  no decimal points ... this is the POTM, not the real world!)
	b) they work like the ones in your car ... if you go a "mile", both
		of them increment by a "mile"
	c) both the odometer and "trip" odometer "roll over" as expected,
		from 999999 to 000000 and from 9999 to 0000
	d) don't even consider what happens when the odometers are "in the
		middle" of changing, with half numbers showing.  Just don't.
	e) no resets, no fiddling, no cheating, no mechanical messing,
		no going backwards, no fixing the reset, etc.

4.  The "correct answers" must be output as one of the following:

	a) a number >0 indicating how far you have to travel before 
		10 different digits are displayed.
	b) "0" (a lone zero) if the input already displays all 10 digits.
	c) -1 if it is not possible to EVER get to a display that shows
		all ten digits - no matter HOW far I travel.

5.  A perfect score is 1000 points.  Where a point is awarded if the program
	correctly output a "0" or a "-1", or if it output the smallest
	possible solution to the presented problem.

6.  In the event of ties (which I suspect will be likely), I will add together
	two program attributes as follows to resolve them:

	T = hundredths of seconds sys+user time to solve the 1000 problems
		(as measured by timex on my machine)

	S = ls -l of your source code (or shell/awk/etc.)

	Smallest T+S wins the tiebreaker.  Further (unlikely) ties will be
		awarded to the earliest entry!  (Note: since timex may vary
		from run-to-run, a (T+S) difference <= 3 will be considered
		a tie and the earliest entry rule applied.  The date of
		an entry is the date the FINAL entry arrives on homxb.)

7. Some examples perhaps, for any of you who may still be confused ....

		ABCDEF GHIJ		Correct answer:

		123455 7889			 1
		012333 6777			12
		167834 2590			 0 (already a winner!)
		000000 0000			-1 (no possible solution)
		788040 7906		     38007
		899934 2333		    223536

   For the tiebreaker, let's say "ls -l xxx.c" yields 500 characters, and
   timex shows you used 22.11 sec.(S+U) to solve the 1000 final problems.
   Your tiebreaker score is thus 500 + 2211 = 2711.

8. Source code must be in a single file.  Standard include files may be used
   but no "personal" include files are allowed.  Putting your entire program
   in the makefile is called CHEATING, as will any other tricks people have
   used to make their program source abnormally small.  I decide!!!  Standard
   libraries are OK provided I have access to them on homxb.

=================  TO ENTER ....

Simply uuto me a copy of your source code at homxb!fah (or email to me
  at homxb!fah or attmail!hicinbothem or fah@homxb.att.com) 
Then send me some email telling me how to compile it. 
  (shell scripts, awks, etc. are also welcome!)

I must have the entry on my machine by the last minute of October, 1993.

SUBMIT EARLY - you can then resolve any compilation difficulties, AND,
	you will get weekly leaderboard results of my system tests.

	I will run your program through a system test consisting of 100
	(rather than 1000) random odometer settings and tell you how you did!
	(Note that the finals will NOT be random - I will pick them!)

	You may submit as often as you like, but only the LAST one will count.
	One entry per email address please.  Thanks!!

HEY!   Hope to see your entry real soon .... 

=Fred		homxb!fah	attmail!hicinbothem	fah@homxb.att.com
Make your own free website on Tripod.com