Reasons for judge datasets
1. no backtracking in my solution order
2. small easy example with no pitfalls
3. many ops left side
4. many ops right side
5. 2 mult because I said it was the limit
6. negative numbers
7-8. avoid division by 0, multiple ops both sides
9-10. avoid more obvious path with 3 digit numbers
11-12. div, avoid more obvious path with truncation
13-14. avoid division by 0
15-16. div, avoid more obvious path with truncation
17-18. avoid more obvious path with leading 0's
It
is realistic problem statement for a puzzle to have a unique solution,
so I leave that assumption. That makes it harder to see if a
solution is written missing one of the rules, because the correct
answer could always be found first. On the assumption that the
solution will include a scan with starting characters going in the file
order and either the first or the last solution is the one used, I
arranged the test data so all the rules should get tested. For
each possibly omitted rule there is a dataset that should produce a
bogus answer first if the rule is omitted. In case the contestant
code goes through all possibilities and just keeps the *last* solution,
all such examples are essentially included twice, with the second
having the data rotated 180 degrees so the bogus solution comes after
the real solution in the normal scan.
With correct code, this means the last six equations are all repeated twice.