16 Sep

Slashdot | Geek Olympics Code for Gold

The 16th annual IOI competition is taking place in Athens this year.

I remember competing in this way back in the early nineties.

The blurb describes the competition as being about determining the “world’s fastest coder”.

Another ex-competitor describes it more accurately:

As a former competitor in the IOI, I wanted to correct some misconceptions regarding the competition format and scoring presented thus far. The competition consists of two rounds with fixed 5 hour time limits. In each round, a contestant is asked to solve three algorithmic programming tasks.

For grading solutions, the only criteria are program correctness and efficiency. To do this, a judge presents the contestant’s solutions for each problem with a set of test input cases. For every test case in which the contestant’s solution gives the correct output under the allowed program running time, the contestant receives a fixed number of points.

As the test cases vary in their size/difficulty, they allow the judge to evaluate both program correctness and efficiency (only the most efficient programs will be able to solve all the test input cases given by the judge for a particular problem). In some recent IOIs, contestants are given an optimization problem to solve, and a contestant’s program is graded based on the optimality of their generated solutions as compared to those solutions generated by programs of other contestants.

In none of these cases is grading ever based on the length of the code or coding speed (unlike the ACM or more recent TopCoder contests). Thus, the IOI is primarily an algorithm design contest rather than a coding competition.