Competitive Programming

Because I’m keen on of competitive programming contests in the style of ACM-ICPC, I thought it might be of interest to present some of my favorite links on the topic.

Online Contests

I did not participate in all the contests I mention, because I lacked the time or did not have knowledge of their existence before I became too old to participate. Nevertheless, they are here for the sake of completeness.

Training

There are many other websites providing ways of training oneself for such problems, but here are a few that caught my attention :

  • Live Archive, which records an impressive set of problems from past ICPC editions
  • Sphere Online Judge, another online judge you might want to try
  • UVA Toolkit, which helps solving problems by providing the expected output of a sample input for certain problems
  • Project Euler, with a great list of problems more mathematically challenging than algorithmically complex

Notebook

If you’ve ever participated in an ICPC, you know that you are allowed to bring with you a notebook containing material that you can exploit during the competition. During my time preparing for the contest my colleagues and I put together our solutions to a bunch of ICPC problems, as well as a library of classical algorithms for solving common problems.  Our source code is available on the following git repository, and I also invite you to have a look at the notebook folder, which contains custom and clean implementation of those well-known algorithms.