written by Antti Laaksonen

Competitive Programmer's Handbook is a free online book whose purpose is to give the reader a thorough introduction to competitive programming. You can download the book here (PDF) and view the project on GitHub.

Guide to Competitive Programming is a printed book, published by Springer. It is based on Competitive Programmer's Handbook, but also discusses more advanced topics. You can buy the book, for example, through Springer or Amazon.

Олимпиадное программирование (Olympiad Programming) is a Russian version of Guide to Competitive Programming, published by DMK Press. You can find more information about the book on their website.