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.
- The infamous Google Code Jam
- The Internet Problem Solving Contest
- The Topcoder Open Algorithm Competition
- Codeforces’ online contests, more in the style of ICPC’s contests
- The Facebook Hacker Cup, which I haven’t tried yet
- Young French student might also check out Prologin
- Finally, the site France-IOI, which offers training targeted towards the International Olympiad in Informatics
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.