Al Zimmermann's Programming Contests

Al Zimmermann's Programming Contests

Words Search

suggested by Jean-Charles Meyrignac


Fit the maximum number of words into a 15x15 grid. Words can be placed horizontally, vertically or diagonally in all possible directions.

The Task

Place the maximum number of different words in a 15x15 grid.
The words can be placed horizontally, vertically or diagonally in all possible directions, but cannot wrap over the edges.
Each word is only counted once, no matter how many times it occurs in the grid.

There are 27 records to be set, "A" to "Z" and "All Letters".
Each record has the restriction of only scoring words that contain the specific letter for the record.
E.g. For the "A" record the word CAT scores 3 points, but DOG scores 0 points.
For the "all letters" record the word CAT scores 3 points, and the word DOG also scores 3 points.

The word list to be used is ENABLE2K (2 megabytes) (Original here:

Your grids must be submitted as 15x15=225 characters.
All spaces, carriage returns or linefeeds will be automatically removed from your input.
All non alphabetical characters will be considered as empty squares, and replaced by the character #.

The Scoring System

When you submit a 15x15 grid, the scorer searches for all the words contained in it and counts the number of empty squares (the cells that do not contain a letter), then it will compute its 27 absolute scores as follows: Remember, each word is only counted once for a given record, no matter how many times it occurs in the grid.

Let's take an example:
The grid contains 19 empty squares.
The scorer found the following 64 words (the number in parenthesis is the number of occurrences):
ag, ai, al, an, as, ass, de, dig, digit, digitize, dis, do(2), dow(2), down(2), downs, downsize, ed, en(5), er, gid, git, glaze, glazed, go, id(3), in(4), is(6), it(3), la, laze, lazed, na, ne(5), nit, no(2), nos, od(2), oe, on(2), one, or, ore, os(2), ow(2), own(2), owns, pa, pe, psi, re, si(6), size, so(2), son, ti(3), tin, wiz, wo(2), zed, zin, zit, ziti, zoa, zone
Click on a word to show it on the grid.
Score for letter A = 42+19 = 61
Score for letter B = 0+19 = 19
Score for letter C = 0+19 = 19
Score for letter D = 66+19 = 85
Score for letter E = 69+19 = 88
Score for letter F = 0+19 = 19
Score for letter G = 37+19 = 56
Score for letter H = 0+19 = 19
Score for letter I = 73+19 = 92
Score for letter J = 0+19 = 19
Score for letter K = 0+19 = 19
Score for letter L = 24+19 = 43
Score for letter M = 0+19 = 19
Score for letter N = 60+19 = 79
Score for letter O = 68+19 = 87
Score for letter P = 7+19 = 26
Score for letter Q = 0+19 = 19
Score for letter R = 9+19 = 28
Score for letter S = 46+19 = 65
Score for letter T = 33+19 = 52
Score for letter U = 0+19 = 19
Score for letter V = 0+19 = 19
Score for letter W = 34+19 = 53
Score for letter X = 0+19 = 19
Score for letter Y = 0+19 = 19
Score for letter Z = 63+19 = 82
All letters score = 187+19 = 206

If your submission establishes a new record or if it matches the existing record, you'll get a score of 1.0.
Otherwise, if your submission for a particular letter improves your previous result for any of the letters, its corresponding score will be:
S = your score for the given letter
R = the current record for the given letter
Score = S/R

Total Scoring

Your score for every part is the sum of all single problem scores.
Since there are 27 problems, the best total score you can get is 27.
A submitted grid will be scored against all possible letters, thus a single submission could set 27 records.


First prize is $270, second prize is $130.
In case of a tie, the entrant who reached the tied score first wins.

At the end of every week for the first 10 weeks, the contestant who has the highest score will win $10.

All prizes will be paid via Paypal when possible, or via Western Union in the other cases.


As the organizers, we may change the rules during this contest.


Special thanks to Neil Brewer, Kevin Burfitt, Mark Mammel and Ivan Kazmenko for helping setting up the rules and beta-testing the scorer.

Questions ?
Return to the index