The challenges of problems from international programming competitions are an effective way to improve your algorithmic and coding skills and understanding.

This volume uses international programming competition-type problems to motivate the study of algorithms, programming, and other topics in computer science. The book includes more than 100 programming challenges, as well as the theory and key concepts necessary for approaching them. Problems are organized by topic, and supplemented by complete tutorial material. Readers gain a concrete understanding of both algorithmic techniques and advanced coding topics.

Unique Features:

* Offers a wealth of rich programming problems suitable for self-study — all with on-line judging at www.programming-challenges.com

* Presents practice training for all major programming contests — ACM International Collegiate Programming Contest (ACM ICPC), International Olympiad in Informatics (IOI), and Topcoder Challenge

* Serves as a convenient, web-based means of adding a programming component to any algorithms or software engineering course

* Contains complete working code for fundamental data structures and graph, string, numerical and geometric algorithms

* Provides a brief-yet-thorough treatment of key elements in number theory, geometry, dynamic programming, and graph algorithms

* Supports all popular programming languages (C, C++, Pascal, Java)

Steven S. Skiena is a member of the faculty of computer science at SUNY Stony Brook and is author of many widely used books, including The Algorithm Design Manual. He received the 2001 IEEE Computer Society Undergraduate Teaching Award.

Miguel Revilla is a member of the faculty of computer science at the University of Valladolid, Spain. He is official website archivist of the ACM ICPC and creator/maintainer of the primary robot-judge, contest-hosting website.

- Getting started
- Data structures
- Strings
- Sorting
- Arithmetic and algebra
- Combinatorics
- Number theory
- Backtracking
- Graph traversal
- Graph algorithms
- Dynamic programming
- Grids
- Geometry
- Computational geometry
- Appendix

REVIEW