Competitive Programming

Join the following channels on the Coding UA Slack workspace: #compprogramming and #compprogramming-docs

When you google anything or refer to any documentation while solving a problem, post a link to the information that helped you in #compprogramming-docs, no matter how trivial. We’ll compile these links into printed documentation for competitions that do not allow Internet access.

The book

Competitive Programming 3 by Steven & Felix Halim.

Paperback: $30.98 (shipping & sales tax included)
Hardcover: $40.98 (shipping & sales tax included)
Ebook: $19.99 (I think we have a PDF of it somewhere on Slack)

The paperback is much smaller than the hardcover so may be preferred when travelling to competitions where it is allowed to bring books (such as the Mercer competition).

Where to practice and compete online

Overview of regularly-held competitions

Team competitions (teams of up to 3 except where noted):

Individual competitions:

Where to begin

Some problems are easy. Some problems are not. (Examples: “Time Limits” from 2018 ICPC Regionals and my solution; “Long Long Strings” from 2017 ICPC regionals and my solution.)

Start out with some easy problems on CodeForces, particularly if you’re new to competitive programming. (The lightning bolt icon column in the Problemset section is the difficulty score.)

When participating in a contest with multiple problems, it is best to start by reading each problem and identifying which ones seem particularly easy. Do those first, since the amount of time it takes you to solve the problems is factored into your score. By getting the easy ones out of the way, you maximize the total score if the amount of time you spend on each problem increases with its difficulty.

Upcoming contests are frequently listed at the HackerRank Calendar or in blog posts on CodeForces which will be linked under “Recent actions” on the homepage.

Check out the problems from last year's ACM-ICPC regional for examples of what problems in real competitions are like. Solutions are posted on the judging blog as well.

Consider getting up early on to participate in the CodeForces (

When you work on problems, either in practice or in competition, I recommend saving your solutions (or code that doesn't work and hence cannot be considered a solution) when possible so you can review them later.