Thanks to all who participated - whether they spent weeks or minutes on their entries! An annotated code listing and many more comments were supplied by our winner in the forums.


_____________________________________________________________

1. Squeezem was submitted by Hagen von Eitzen (hagman)   
_____________________________________________________________

Describe briefly the strategy Squeezem used for GLOSSY:

I define a class POTMrect that more or less describes a rectangle, 
but not of fixed width and height, rather with a set of possible 
heights for each given width.

I represented the set as a (hopefully short) sequence of intervals 
to facilitate addition and subtraction of sets (i.e. calculation of 
{ a+b : a in A and b in B } etc.).

Thus the given rectangles produce such a POTMrect by checking the 
inequalities for aspect ratio and minimum area.
I start with the given paper size and backtrackingly subtract a 
POTMrect from the top or from the right.

Thus I might obtain something like this as an intermediate result:
	+-------------+
	|             |
	|             |
	+---------+-+-+
	|         | | |
	+---------+ | |
	|?????????| | |
	|?????????| | |
	+---------+-+-+

Finally, I hopefully end up with all given rects used up and 
the remaining unknown area is a POTMrect that allows e.g. a height 
of 0 for some width (i.e. I cover the whole paper).
To add variety, I do not always subtract a given rectangle from 
the current paper or unknwon area, but rather I precalculate sums 
of 2, 3, 4 (and sometimes 5) given rects, so one "block"
	+-------------+
	|             |
	|             |
	+-------------+
in the picture above might really stand for
	+--------+----+
	|        |    |
	+--------+    |
	+--------+----+
etc.

This cannot find solutions that are very jigsaw-like, e.g.
	+---+-+
	|   | |
	+-+-+ |
	| | | |
	| +-+-+
	| |   |
	+-+---+

but what the heck...

I only find solutions that allow chopping off blocks of few 
rects step by step by cutting throught the paper.
Also, the order of the given rects to try to subtract is 
important, one really should try all permutations, but, 
alas, there are so many...

Heuristically, I sort the given rects by aspect and try to 
use the very oblong ones first (i.e. at near the paper border).
Also, sums of rects of approximately equal aspect add up better 
(i.e.  with possibly small area differences, better tiebreak).

Later versions made multiple runs of the backtracking routine, 
where each run had minimum and maximum areas of the rects adjusted.
This significantly speeds up calculation of sum rects (less
possibilities) and forces better tiebreaks.
Also, subsequent runs might permute the rects a bit, so we do 
not conform strictly to the first sorting by aspect ratio.

The last second or so is spent with "wiggling" the solutions, 
i.e. try to obtain a slightly better one by modifying all 
occuring x and y values  by +/-1.
Although lots of  "wiggling" can be done in one second, 
this never really improved the score :(


If I had it to do all over again, here's what I'd try:

Hm, first suspect that there is a 0 score solution (if it fails, 
we probably can do something else).  Start with enumerating nice 
topological arrangements of rectangles, try to estimate feasibility 
of such arrangement by algebraic / numerical means using the aspect ratios.
I joined the contest very late (Sep 14), so I couldn't even think 
of implementing such sophisticated methods, but I'm quite satisfied 
with what I could obtain in those few days.


I named my GLOSSY entry "Squeezem" because ...

... it squeezes 'em onto the paper.
(The first proggy was named JustDoIt because I was still struggling 
for a way to just create valid solutions at all)


Here's what I want the world to know about me, my family,
my work, my life, and my fondest wish:

There's not much important to know about me, maybe You check the 
totally obsolete, horrible and uninformative website at http://www.von-eitzen.de/.
Fondest wish: People, be nice and act friendly with one another.
During POTM and other contests:  PUSH; wish to win; POP  ;)


_____________________________________________________________

2.  tossy was submitted by Wolfram Hinderer (Kuno)   
_____________________________________________________________

Describe briefly the strategy tossy used for GLOSSY:

The pics are partitioned into "groups", which in turn are put 
onto a "strip of constant height" on the page.

Example: (A, D) is one group, (B, C) the other.
They might be arranged like this (. is empty PAGE):

	AAAAAADDD
	CCCCBBBBB
	CCCCBBBBB
	CCCCBBBBB
	.........

You can see that the groups are "aligned" and the arrangement 
of the groups has its own aspect ratio. To minimize the difference 
of the aspect ratios of the PAGE and this arrangement, pics are 
moved from one group to the other (more or less randomly). 
Then the groups are placed on the page again, and so on.

After a while, some pic is rotated and the whole thing starts over.

Finally, the PAGE is rotated, and everything starts again.


If I had it to do all over again, here's what I'd try:

Make the algorithm more robust...

I named my GLOSSY entry "tossy" because ...

All my "name finding energy" went into finding a name for my 
daughter, born September 23, 2005. For my POTM entry, I just 
changed it most of the time, rhyming with glossy. 

Here's what I want the world to know about me, my family,
my work, my life, and my fondest wish:

I guess you know enough if you read the "naming" section...

_____________________________________________________________

3.  mcpic was submitted by Stefan Foerster (HotblackDesatio)
_____________________________________________________________

Describe briefly the strategy mcpic (version 3.24) used for GLOSSY:

1st step:
'mcpic' tries to find a solution for the "relaxed" problem,
i.e. a solution in floating point arithmetic. It uses two
very simple algorithms to ensure that a valid solution is
found and then the main algorithm.

2nd step:
The second step is a "rounding" function that scales the solution
to fit into the page and rounds the solution to integers. If the
solution is valid and better than the previously found solution,
it stores it for later printout. If the tiebraker of the solution
is zero it additionaly tries to optimize the tiebraker by moving
around what I call 'independent lines' within the aspect ratio
boundary conditions.

3rd step:
If the time is up, 'mcpic' prints the solution.

This was the setting up to version 2.46. I soon realized that for
the bigger problems this 'global' approach doesn't lead to good
solutions - most of the time the main algorithm in step 1 didn't
even succeed in finding a solution for N>=20. 

Since version 3 I split the page into sub-pages if N>10. The recursive
splitting function first assigns pictures to the sub-pages (number
of pictures and aspect ratios as 'fair' as possible) and then splits
the page according to the minimum picture areas of the sub-pages.

The resulting sub-problems are solved in parallel using the kernel
threading capabilites of Linux (the clone() function). If the time is
over, the partial solutions get joined in step 3 and - if the tiebraker
is zero - the tiebraker gets optimized again. [Remark: If compiled
under M$ Windows, it's still single-threaded, thus it behaves like the
old version 2.46 with very bad results for big N's]. On my 2 CPU
HP Server this also reduces the wall clock time needed per run to
30 secs ;-)

Here is what the main algorithm (step 1) does:

The algorithm recursively attaches in each step one or two rectangles
(pictures) to the so far created rectangle. Up to a certain recursion
depth it uses a brute-force approach, i.e it tries all possible
combinations and rotations. From a certain recursion depth on it
only tries the combination with the resulting total aspect ratio as
close as possible to the page aspect ratio. In case two pictures are
attached in a recursion step, a minimum area approach is used. If the
recursion ends with two pictures to attach, they get attached with
minimum white space.

At the end of every recursion step (from a certain 'n' on) the minimum
scaling factor for the scaling of the estimated final solution to fit
into the page gets estimated. This effectively cuts the search tree !!

But this is not the whole story. There are two parameters the algorithm
plays with:
a) the aspect ratio delta (+/- 0.02)
b) a factor for the weighted mean of the relative deviations of the
aspect ratio to the page aspect ratio and the new and old tiebrakers.
This means, if 'N' exceeds the brute force boundary, I do the whole
algorithm depending on these two variables; if 'N' is withing the brute
force boundary I only optimize over the aspect ratio delta. The grid size
for the two parameter case is computed depending on the time needed
per single run.

Easy, isn't it ?


If I had it to do all over again, here's what I'd try:

If I had known in the bgeinning how much work this would be, I wouldn't
have started coding in the first place...


I named my GLOSSY entry "mcpic" because ...
...don't know. McPic sounds good and is short.


Here's what I want the world to know about me, my family,
my work, my life, and my fondest wish:

I live in Aschheim, Germany (near Munich). Most of my spare time
belongs to my family and my house. But of course I am a computer and
Linux addict.

I am mathematician/actuary. I work with Swiss Re Germany.

My fondest wish... to have much more time for my family (but 
that won't happen as long as I don't win in the lottery).

_____________________________________________________________

4. carlysnightmare was submitted by Doug Jones (dajones)   
_____________________________________________________________

Describe briefly the strategy carlysnightmare used for GLOSSY:

I used a simple recursive procedure.  Given an ordered list of 
pictures and the page sizes, some pictures are selected from the 
front of the list and packed into a slice of the page.  
The slice is either the full height of the page or the full width.
The other dimension of the slice is calculated so that the 
pictures fill the slice without any wasted space.  This calculation 
is done using both minimized and maximized aspect ratios.  
If a feasible slice size is found, the procedure is called 
recursively to pack the remaining pictures in the remaining page.

The pictures are sorted in decreasing aspect ratio order the first 
time this procedure is applied.  If that doesn't produce a result 
with no wasted space, random order lists are tried.

If I had it to do all over again, here's what I'd try:

I was planning on trying additional configurations of pictures in a 
slice, but I got side track by other projects and didn't get to it. 

I named my GLOSSY entry "carlysnightmare" because ...

My entry is named for Carly Fiorina the former CEO of HP.  She would 
probably have nightmares about people using programs like this to 
minimize printing supply costs, if she still had that job. 

Here's what I want the world to know about me, my family,
my work, my life, and my fondest wish:

I work for AT&T out of my home in Evergreen Colorado USA.  I hike 
and cross-country ski when I can get out of the house. 

_____________________________________________________________

5. Felix_Felicis was submitted by Nawanol Theera-Ampornpunt (Nol)   
_____________________________________________________________

Describe briefly the strategy Felix_Felicis used for GLOSSY:

The main algorithm is just randomly placing pictures.
If N is large (>10) then it tries to reduce N by placing some 
initial pictures in the same row/column and solve only the rest. 
Brief enough? That's pretty much it.


If I had it to do all over again, here's what I'd try: 

I might think of a new completely different algorithm.


I named my GLOSSY entry "Felix_Felicis" because ...

Felix Felicis means lucky of lucky, and my program kind of 
needs some luck. (The actually reason is just because it sounds good.)

Here's what I want the world to know about me, my family,
my work, my life, and my fondest wish:

I'm from Thailand. I'm currently a freshman at Carnegie Mellon 
University. And I like competition programming.

_____________________________________________________________

7. FCI_CairoUniv_EGYPT was submitted by Amin Allam (aminallam)   
_____________________________________________________________

Describe briefly the strategy FCI_CairoUniv_EGYPT used for GLOSSY:

-Put a picture that will take the most possible space such that there 
will be sufficient space for the other pictures if they are put minimally.

-Repeat the previous operation for the remaining pictures.

If I had it to do all over again, here's what I'd try:

First, I will try to know the trick to make 0 score.

I named my GLOSSY entry "FCI_CairoUniv_EGYPT" because ...

The entry name is the place I like so much, I have been graduated
from it, and I work as a teaching assistant in it also:
Faculty of Computers and Information, Cairo University, Egypt.

Here's what I want the world to know about me, my family,
my work, my life, and my fondest wish:

- My name is "Amin Mohammad Allam".
- My age is 23.
- I live in Suez, Egypt. 
- I work as a teaching assistant at: Computer Science Department,
	Faculty of Computers and Information, Cairo University, Egypt.
- I am interested in "Natural Language Processing".
- I like reading, programming, and playing football.

_____________________________________________________________

8. GlossOMatic was submitted by Michael van Fondern (michael)   
_____________________________________________________________

Describe briefly the strategy GlossOMatic used for GLOSSY:

The main algorithm is a simplified form of "simulated annealing":

1. Choose an initial page layout P, with an unconvered area of size A(P)

2. Make a random change to P, creating a new page P2

3. If A(P2) < A(P) + f(t), replace P by P2
	f(t) is  a function of the remaining time t, defining a 
	decreasing "tolerance".

5. While t>0, go to step 2

After making some experiments, I found
f(t) = ("Total area of P" / "number of pics" / 10) * t*t / (60*60) 
	to be a good function.

Another important part is how GlossOMatic makes a "random change" 
to P. It chooses one of the pictures from P, removes it from it's 
original position, chooses randomly a new position and an orientation 
("portrait" or "landscape"), shrinks the picture to the smallest 
possible size, and tries to insert the picture at the new position. 
If this is possible, the picture will be expanded to the maximum 
in one of the 4 possible diagonal directions (which one, is also 
chosen randomly).


If I had it to do all over again, here's what I'd try:

I would try to improve the above algorithm a little bit more.


I named my GLOSSY entry "GlossOMatic" because ...

... I had no very cool idea for a program name, and since my last 
entry's name was WordOMatic, GlossOMatic seemed to be ok.

Here's what I want the world to know about me, my family,
my work, my life, and my fondest wish:

Well, there is not much change to this topic since I filled out 
this form last time, or the last 10 times before, so I am sure 
everyone can read it there.

_____________________________________________________________

8. PageCracker1 was submitted by Mike Sweeney (mjs)   
_____________________________________________________________

Describe briefly the strategy PageCracker1 used for GLOSSY:

pc1 is a python program that was designed to be correct, robust, 
and small.  It repetatively finds layout solutions until 15 
seconds is up, then prints the best layout found.

Input, normalize, and index the pictures While time is left:
While layout is not complete:
Find all (possibly overlapping) spaces in current layout
For each picture (in random order):
For each space:
Find best placement of a picture in a space
Add best placement to layout
If layout is best, store it
Print best layout

The program 135 lines of code + comments = 178 lines

This problem was difficult, but did not fire up my imagination.
How about a multiplayer contest on a 2D surface (like squirrels, 
or ICFP Ants, or robots) please POTM Master?


If I had it to do all over again, here's what I'd try:

pc1 is a quick and dirty script so I can have an entry in the competition.
If I was to be more serious, I would have analysed the problem 
before coding, and built a test harness to track performance.


I named my GLOSSY entry "PageCracker1" because ...

Lack of imagination...


Here's what I want the world to know about me, my family,
my work, my life, and my fondest wish:

Computer scientist, hacker, pythoneer.  Wife, 3 kids, cat. 
Lives in Canberra, Australia.  Plays badminton, cooks, hacks 
microcontroller circuits, linux nut, reads, travels.  
Enjoys mind bending software puzzles.

______________________________________

10. LasBabasDelDiablo was submitted by Sven Reichard (sven.reichard) 
 _____________________________________________________________

Describe briefly the strategy LasBabasDelDiablo used for GLOSSY:

The program looks only for "ordered" solutions, i.e., solutions 
which consist of several film strips glued together. Hence, 
the photos are heuristically partitioned into rows (if time 
permits, all partitions are investigated). From this partition 
and the orientation for each picture we can compute the 
aspect ratio of the page obtained by glueing the strips together. 
By a branch and bound method it finds orientations such that 
the resulting aspect ratio is close to the target. 
Only then does it compute actual coordinates, and adjusts them 
to find a local optimum.


If I had it to do all over again, here's what I'd try:

I'd try to win. Seriously, I'm quite satisfied with the result 
right now, even if I'll probably won't reach the goal of 
"best interpreted program".


I named my GLOSSY entry "LasBabasDelDiablo" because ...

Being a film buff (my wife would say "movie freak"), I wanted 
to get a cinematographical reference. Once I knew that the 
problem was about printing photos it was clear that the movie 
would have to be "Blowup" by Michelangelo Antonioni. This film 
was based on a short story by J. Cortazar, entitled  
"Las babas del diablo"  (The slobberings of the devil). 
Unfortunately I haven't yet found a translation of this story 
to any language I can read...

Here's what I want the world to know about me, my family,
  my work, my life, and my fondest wish:

Currently I'm an unemployed mathematician in Germany. 
However, in January I will start a job at UWA in Perth. 
I am 35 years old, married, and my only daughter just 
started to walk last week. My fondest wish? 
That would be... harsher punishment for parole violators ... 
    ...and world peace! ;-)

_____________________________________________________________

11. tessa was submitted by Colin Cameron (SpaceDog) 
_____________________________________________________________

Describe briefly the strategy tessa used for GLOSSY:

Tessa uses a deeply screwed up strategy, essentially it looks for 
the biggest blank rectangle and then trys to find a picture to fill it.
This is repeated until the no more placements can happen.

Since this can end up not placing all the pictures, the system 
places an increasing number of small pictures before starting 
the placing algorithm. This continues until a solution where 
all the pictures are placed is found. The system places and 
removes random pictures to try and find a solution.

If the system can't find a solution that way it will use a 
fall back of placing the pictures in rows scaled to their 
smallest size. This is likely to work but not can fail against 
a particularly fiendish set of pictures.

If I had it to do all over again, here's what I'd try:

Finding space and filling it is unwieldy. Plus it it'll rarely 
find optimimum solutions.

Given more time I'd try different inital placement systems and 
fall back on the space filling / picture moving routine aferwards.

Then use the best solution out of those -- currently my 
system bails when it finds a working solution.

I named my GLOSSY entry "tessa" because ...

Eh, I have a habit of naming programs with human sounding names. 
My vague justification is that it's kinda like a 'tessa'lation 
system (apart from all the ways in which it isn't) ...


Here's what I want the world to know about me, my family,  my work, my 
life, and my fondest wish:

I'm a sometime bored and easily distracted software engineer 
doing telecoms work in Edinburgh, Scotland.


_____________________________________________________________

12. gnilaenna_kaew was submitted by Jeff Hlywa (jhlywa)   
_____________________________________________________________

Describe briefly the strategy gnilaenna_kaew used for GLOSSY:

I'm lazy.  In lieu of reading whitepapers about VLSI floorplanning 
and 2D stock cutting (come on, I know some of you did), I decided 
to employ some type of nondeterministic machine learning algorithm.  
After a few experiments with evolutionary algorithms, I settled on 
simulated annealing (primary because it performed "suitably" well 
on large data sets within the time constraint ... and it was 
trivial to implement ...  did I mention I'm lazy?).  

The end result is a program that'll find OK answers during one 
run and spiral off into some obscure realm of the hypothesis space
during the next (in other words, it's unpredictable as hell).


If I had it to do all over again, here's what I'd try:

Start earlier.  Test will real problems, instead of just using SYSTEST1.


I named my GLOSSY entry "gnilaenna_kaew" because ...

Gnilaenna Kaew is ancient Swahili for "read me backwards".

Here's what I want the world to know about me, my family,
my work, my life, and my fondest wish:

Um ... I like UNIX.

_____________________________________________________________

14. Shuffler was submitted by Johan Gronqvist (JohGro)   
_____________________________________________________________

Describe briefly the strategy Shuffler used for GLOSSY:

Place all images in some way.

Randomly do one of the following on a randomly chosen picture:
1) Shrink an image to the minimally allowed size.
2) move an image as far as possible in a random direction.
3) enlarge an image to the maximum possible size.

This is done for a second or so, adn then all pictures are 
  enlarged to the maximum size.

The procedure is repeated until there is little time left, 
and the best solution found is sent to standard output.

I named my GLOSSY entry "Shuffler" because ...

It shuffles randomly.

_____________________________________________________________

15. MargaritaCarmenCansino was submitted by Scott E August (scotta)   
_____________________________________________________________

Describe briefly the strategy MargaritaCarmenCansino used for GLOSSY:

Current algorithm:
   1) Fill bottom-left to top-right with the minimum size 
	pictures (should be valid).
   2) Find smallest area that has same aspect ratio as 
	the page that all minimum sized pictures fits into.  
	Swell pictures to full page size.  Stretch any pictures 
	that can be stretched to take up any remaining space.
   3) Try all possible order combinations of pictures using bottom-left.


If I had it to do all over again, here's what I'd try:

Not much, work got very busy and I didn't have any time to 
work on glossy.  When things settled down at work, I lost interest 
in the problem and decided to wait for the next problem.


I named my GLOSSY entry "MargaritaCarmenCansino" because ...

   PicturePerfect first came to mind, but seemed a little simple, so the
   next thought was who would take a perfect picture.  Marilyn Monroe came
   to mind, but I am not a big fan.  Rita Hayworth came to mind next, but
   using her well known name (mothers maiden name) seemed a little simple for
   Fred, so using her full given name is was I chose.

_____________________________________________________________

16.  VictorTugelbendsFinestHour was submitted by David Cox (daveymatey)   
_____________________________________________________________

Describe briefly the strategy VictorTugelbendsFinestHour used for GLOSSY:

It divides the page up into grids then scales the images up or 
down to fit in to a grid. If there's any empty grids it tries to 
expand an adjacent grid's picture into the empty grid.

If I had it to do all over again, here's what I'd try:

Currently all grids are the same size, so changing grid sizes 
based on given aspect ratios maybe. I need to spend more time 
on it once I get a basic solution.

I named my GLOSSY entry "VictorTugelbendsFinestHour" because ...

Terry Pratchett wrote a (very funny) book featuring Victor Tugelbend. 
It was called ... Moving Pictures (geddit? geddit? I'll get me coat).
And it was better than leftabitupabit, the original name.
I really should spend more time on coding rather than coming up with a name.

Here's what I want the world to know about me, my family, my work, my 
life, and my fondest wish:

I am Dave. My family is my wife Anna, Darwin the hamster and 
three new guppys in my brand new aquarium.  My life is too busy. 
Fondest wish is to win the lottery to spend more time with Anna, 
Darwin, the three new guppys and the PotM. ;-)

_____________________________________________________________

17.  coquette was submitted by Alexander D'yakonov (dyakonov)
_____________________________________________________________

Describe briefly the strategy coquette used for GLOSSY:

It is very difficult...
Now, I do not understand how it works...
Simple search...
1) Building small pictures (>=1% of area).
2) Arranging small pictures - brute solution.
3) Arranging pictures...
Trying to resize pictures (some stages: maximal size, 
  maximal size*y/(x+y) for x*y-picture, minimal size,...).

I am sure, that my program is not perfect!
And code is terrible (I did not have enough time to finish).


If I had it to do all over again, here's what I'd try:

start to think about problem from August (not from the end of September).

I named my GLOSSY entry "coquette" because ...

To my mind, it is very original word, unusual at least... 
  I think so...

Here's what I want the world to know about me, my family, 
   my work, my life, and my fondest wish:
Scientist at Moscow State University.  I live in Ivanteevka... 
Ivanteevka is a small town 35km away from Moscow (Russia).
My life is very tangled.  My family... my father, my mother, me...
fondest wish?... Hmm.. :) It is difficult question (for me).

_____________________________________________________________

some_tweek was submitted by Steve Trevorrow (BobBlack) 
_____________________________________________________________

Describe briefly the strategy some_tweek used for GLOSSY:

It tries to put the rectangles into complete columns and tries 
every permutation (if enough time) to find the best one based 
purely on aspect ratios, checking that none of them is too small

Then it tweeks the size to minimize the number of pixels left 
and picks the best solution.

Not very optimised, writting in perl for quick development time.


If I had it to do all over again, here's what I'd try:
Algorithm could be significantly improved if I joined the 
contest earlier or had more time to develop it.


I named my GLOSSY entry "some_tweek" because ...
I called this entry final entry because the contest closes in 
a few hours and I need to go to bed!

Here's what I want the world to know about me, my family,
my work, my life, and my fondest wish:

Hmm i think u know enough about me already...

_____________________________________________________________

mbcrane_at_rogers_seeking_wrk_tdot was submitted by Matt Crane (quirkz)   
_____________________________________________________________

Describe briefly the strategy mbcrane_at_rogers_seeking_wrk_tdot used for GLOSSY:

Randomly generate seamless solutions by connecting two rectangles 
four different ways, then connecting the next rectangle to the 
newly formed rectangles each of the four different ways, and so on, 
in a random order, taking the best solution from two different 
random ordering of rectangle sequences.

If I had it to do all over again, here's what I'd try:

a more "genetic" approach, generating solutions by taking  "AbCEf" 
combining the sides based on the case of the letter (big=long to
small=short) and searching for maxima.

I named my GLOSSY entry "mbcrane_at_rogers_seeking_wrk_tdot" because ...

_____________________________________________________________

InkWaster was submitted by Benjamin Carter (komondorok)   
_____________________________________________________________

Describe briefly the strategy InkWaster used for GLOSSY:

It was just a canned solution for SYSTEST1.  (Not even a particularly 
good one.)  It would have been something more, but the machine I was 
developing on had its hard drive die and I lost all the work I had done.

If I had it to do all over again, here's what I'd try:

For starters, I'd develop on a system that was being backed up.  :-) 
This is a variation of the packing problem (which is known to be NP) 
however it introduces the ability to choose an arbitrary scale.  
An input of 4x4 pixels or 400x400 pixels is the same thing - so barring 
roundoff error, the aspect ratio can completely describe each image.

I named my GLOSSY entry "InkWaster" because ...

Have you seen the price of inkjet printer ink recently?  
And they aren't stingy when the objective is to FILL a sheet 
of paper with a full-color image.

Here's what I want the world to know about me, my family,
my work, my life, and my fondest wish:

Just the standard wish for more free time to work on this contest.  :-)

_____________________________________________________________

Scrappy was submitted by Hal Burch (hburch) 
_____________________________________________________________

Describe briefly the strategy Scrappy used for GLOSSY:

Put a picture in the upper left.  This leaves two open strips, 
one at the bottom and one on the left.  Fill these two strips 
with pictures at minimum size.  Go back through, increasing 
picture sizes until there is no room left.  
Try this with variously-scaled version of the picture.

For more than 14 pictures, I divide the picture in half before 
doing this.  This deals with at least the obvious 
difficult-to-find-solution test cases.

If I had it to do all over again, here's what I'd try:

Placing pictures in different arrangements recursively.

I named my GLOSSY entry "Scrappy" because ...

Both the Scooby-Doo reference and its relevance to the problem at hand.



  


The POTM is unsponsored and just for fun.       Tuesday 06:04:22 PM      Copyright © 2004-6 - Fred Hicinbothem