There are many distinct pleasures associated with computer programming. Craftsmanship
has its quiet rewards, the satisfaction that comes from building a useful object and
making it work. Excitement arrives with the flash of insight that cracks a previously
intractable problem. The spiritual quest for elegance can turn the hacker into an artist.
There are pleasures in parsimony, in squeezing the last drop of performance out of clever
algorithms and tight coding.
The games, puzzles, and challenges of problems from international programming competitions
are a great way to experience these pleasures while improving your algorithmic
and coding skills. This book contains over 100 problems that have appeared in previous
programming contests, along with discussions of the theory and ideas necessary to attack
them. Instant online grading for all of these problems is available from two WWW
robot judging sites. Combining this book with a judge gives an exciting new way to
challenge and improve your programming skills.
This book can be used for self-study, for teaching innovative courses in algorithms
and programming, and in training for international competition.