Three men  Art, Ben and Cal, played a dart game.
 Each dart that lodged in the game board scored 1, 5, 10, 25, 50 or 100 points.
 Each man threw nine darts that lodged in the board.
 Each man's total score was the same as any other man's total score.
 No number of points scored by a dart was scored by more than one man.
 Art scored all the 5s and Ben scored all the 10s.
Who scored all the 100s?
OPEN "dartscor.txt" FOR OUTPUT AS #2
FOR ones = 0 TO 9
FOR fives = 0 TO 9  ones
v5 = 5 * fives
FOR tens = 0 TO 9  ones  fives
v10 = 10 * tens
FOR twenty5s = 0 TO 9  ones  fives  tens
v25 = 25 * twenty5s
FOR fiftys = 0 TO 9  ones  fives  tens  twenty5s
hundreds = 9  ones  fives  tens  twenty5s  fiftys
value = ones + v5 + v10 + v25 + 50 * fiftys + 100 * hundreds
PRINT #2, USING "#### "; value;
PRINT #2, USING "##"; ones; fives; tens; twenty5s; fiftys; hundreds
NEXT
NEXT
NEXT
NEXT
NEXT
CLOSE
SHELL "sort < dartscor.txt > dartscr.txt"
OPEN "dartscr.txt" FOR INPUT AS #1
OPEN "dartscor.txt" FOR OUTPUT AS #2
DIM hold$(30)
DO
LINE INPUT #1, l$
v = VAL(LEFT$(l$, 4))
IF v <> prev THEN
IF vct > 2 THEN
FOR a = 1 TO vct  2
FOR b = a + 1 TO vct  1
FOR c = b + 1 TO vct
good = 1
FOR psn = 8 TO 18 STEP 2
nzct = 0
IF MID$(hold$(a), psn, 1) <> "0" THEN nzct = nzct + 1
IF MID$(hold$(b), psn, 1) <> "0" THEN nzct = nzct + 1
IF MID$(hold$(c), psn, 1) <> "0" THEN nzct = nzct + 1
IF nzct > 1 THEN good = 0: EXIT FOR
NEXT psn
IF good THEN
PRINT #2, hold$(a)
PRINT #2, hold$(b)
PRINT #2, hold$(c)
PRINT #2,
END IF
NEXT
NEXT
NEXT
END IF
vct = 1
hold$(1) = l$
ELSE
vct = vct + 1
hold$(vct) = l$
END IF
prev = v
LOOP UNTIL EOF(1)
CLOSE
(variables a, b and c are not necessarily the respective names Art, Ben and Cal)
finds
225 0 0 0 9 0 0
225 0 5 0 0 4 0
225 5 0 2 0 0 2
Annotated, based on spec 5, this is
value: 1 5 10 25 50 100
225 0 0 0 9 0 0 Cal
225 0 5 0 0 4 0 Art
225 5 0 2 0 0 2 Ben
So Ben scored all the 100s.

Posted by Charlie
on 20131107 11:39:56 