Back to homepage

Programming contests

Programming contests are a fun way of keeping up-to-date your programming/algorithmic skills. Back when I was an undergraduate I used to participate in the regional phase of ACM's International Collegiate Programming Contest (ICPC) (not that my team did anything impressive, but at least we got a couple of free trips to participate in the european phase).

So, how does a programming contest work? Participants make groups (usually 1-3 people). Every group is presented with the same set of problems, and they must solve as many as the can in a limited amount of time (1 hour, 5 hours, or even more for internet contests). Each problem requires the programmer to implement an algorithm to solve it. Some problems require trivial or ad-hoc algorithms, other require more sophisticated methods such as dynamic programming, search and pruning, etc... The format of the input and output are also specified in the problem's text. Input and output are almost always done by stdin/stdout. There are some other rules, such as time penalties for incorrect solutions, but these vary from contest to contest. For examples of typical problems, see my list of solved problems below.

Nowadays I am no longer an undergrad I therefore I can't participate at the ICPC anymore. Anyway, I continue solving programming problems for the fun of it.

Practice problems

There is an impressive collection of problems from the University of Valladolid (Spain) HERE. All of them are in English, and there is an online judge system that tests the correctness of your solution.

To start, go to the Online judge webpage and register. Once you do that, you can start practicing solving some of the problems (go to the "Browse problems" section). These guys also organise from time to time online contests were everybody can participate.

My solved problems

Here is a list of the problems I've solved so far (last updated: January 2007). Problems solved after December 2007 may have comments.