It was extremely close this month with the winning entry eking out the win by only 2 points (coming from the difference in execution speed). Three entries achieved sub-second times for both large data sets: s1g1ll, bugman, and mgarlanger. Even at such fast execution times, s1g1ll's entry was an order of magnitude faster than the nearest competitor.
Here's how the judges tabulated points awarded for this problem set:
Intel Technology Used. Same as in previous problems; 25 points for TBB and 10 points for each other Intel software tool (compiler, MKL, IPP, etc.) incorporated.
Elegance. A subjective rating of 0-30 points on the documentation included with and in the program. The documentation included within the final code evaluated went above and beyond the minimum for completeness and organization, so 5 extra documentation points were given. One entry code examined input puzzles and pointed out illegal starting configurations in the output generated, which was awarded 20 bonus points. While many other entries checked for illegal configurations, there was only one that included this information in the output, which makes that application more effective as a puzzle diagnostic tool.
Execution & Time Score. Two input data files were used, each containing 100000 puzzles. A maximum limit of 60 seconds was allowed, and this amount was awarded to codes that had problems with the input. The total execution times for the two runs were added together. The minimum total was awarded 100 points with the others assigned a point value according to where the total execution time fell between the minimum and 120 seconds.
One code was unable to execute using either of the large input data sets and two others were found to not be able to handle whole categories of puzzles (one on puzzles with NO solutions and the other on puzzles with MULTIPLE solutions). After encountering the first of these, three small test data files each containing 10 examples of one of the possible puzzle outcomes for quick initial testing before running the larger data sets.
Other. Five points awarded for each forum post, up to the maximum 50 points.
Again, the judges underestimated the cleverness and ingenuity of the competitors this month. If we had realized how quickly codes could sift through the over 139 quadrillion possible combinations of 6 symbols in 6 rows, we would have either increased the number of puzzles in a data file (judging headache) or bumped the problem size to 9x9 or 16x16.
Congratulations to all who entered. Keep up the good work as we reach the "home stretch" of the contest.
--clay
"It's all very complicated and would take a scientist to explain it." -- MST3K