Definitions

The International Olympiad in Informatics (IOI) is an annual informatics competition for secondary school students. The first IOI was held in 1989 in Pravetz, Bulgaria.

The contest consists of two days computer programming, solving problems of an algorithmic nature. Students compete on an individual basis, with up to four students competing from each participating country (with around 81 countries in 2004). Students in the national teams are selected through national computing contests, such as the Australian Informatics Olympiad, British Informatics Olympiad, and Bundeswettbewerb Informatik (Germany).

Structure of the competition

On each of the two competition days, the students are typically given three problems which they have to solve in five hours. Each student works on his/her own, with only a computer and no other help allowed, specifically no communication with other contestants, books etc. Usually to solve a task the contestant has to write a computer program (in C, C++ or Pascal) and submit it before the five hour competition time ends. Later on, the program is graded by being run with secret test data, consisting of multiple (typically 10 or 20) test cases. The contestant is awarded points for each test case that his program solves correctly, and within the given time and memory limit. In some cases, the contestant's program has to interact with a secret computer library, which allows problems where the input is not fixed, but depends on the program's actions - for example in game problems. Another new type of problems has known inputs which are publicly available already during the five hours of the contest. For these, the contestants have to submit the according output file instead of a program, and it is up to them whether they obtain the output files by writing a program (possibly exploiting special characteristics of the input), or by hand, or by a combination of these means.

The scores from the two competition days and all problems are summed up separately for each contestant. At the awarding ceremony, contestants are awarded medals depending on their relative total score. The top 50% of the contestants (i.e. two per country, on average) are awarded medals, such that the relative number of gold : silver : bronze : no medal is approximately 1:2:3:6 (thus 1/12 of the contestants get a gold medal).

Unlike other science olympiads, the IOI regulations specifically prohibit ranking by countries. Although unofficial rankings are circulated within some participating nations, there is therefore no standard.

Multiple IOI winners

The following is a list of the top 21 performers in the history of the IOI. First (I), second (II) and third (III) places among gold medalists are indicated where appropriate. This list includes only those countries where the national selection contest allows the same participant to go multiple times to the IOI.

NameTeamYears
Filip Wolski  Poland  G(I) 2006  G 2005  G 2004  G 2003

Reid Barton  United States  G(I) 2001  G 2000

Martin Pettai  Estonia  G 2002  G 2001  G 2000  S 1999

Andrzej Gasienica-Samek  Poland  G 1999  G 1998  G 1997  S 1996
Vladimir Martianov  Russia  G 1999  G(I) 1998  G(I) 1997
Martin Mares  Czech Republic  G 1995  G 1994   G 1993
John Pardon  United States  G 2007  G 2006   G 2005
Marcin Andrychowicz  Poland  G 2008  G 2007   G 2006
Bruce Merry  South Africa  G 2001  G 2000   S 1999   B 1998   B 1997   B 1996
Alex Schwendner  United States  G 2005  G 2003   S 2004   S 2002
Wolfgang Thaller  Austria  G 1997  G 1996  S 1999  S 1998
Victor Bargachev  Russia  G(I) 1995  G(I) 1994  S 1993
Mihai Patrascu  Romania  G(II) 2001  G 2000  S 1999
Roman Pastoukhov  Russia  G 2000  G(II) 1999  S 2001
Piotr Zieliński  Poland  G 1997  G(III) 1996  S 1995
Miroslav Dudik  Slovakia  G 1997  G 1996   S 1995
Richard Kralovic  Slovakia  G 1999  G 1998   S 1997
Tomasz Czajka  Poland (1998, 2000), United Kingdom (1999)  G 2000  G 1999   S 1998
Petr Mitrichev  Russia  G 2002  G 2000  S 2001
Luka Kalinovcic  Croatia  G 2004  G 2003   S 2002
Rostislav Rumenov  Bulgaria  G 2007  G 2006   S 2005
Henadzi Karatkevich  Belarus  G 2008  G 2007   S 2006
Goran Žužić  Croatia  G 2008  G 2007   B 2006