The International Olympiad in Informatics (IOI) is an annual competitive programming competition and one of the International Science Olympiads for secondary school students. The first IOI was held in 1989 in Pravetz, Bulgaria. Each country sends a team of up to four students, plus one team leader, one deputy leader, and guests.
The contest consists of two days of computer programming/coding and problem-solving of algorithmic nature. [1]
Students in each country are selected for their country's team through national computing contests. Students at the IOI compete on an individual basis. There is no official team ranking.
On each of the two competition days, the competitors are typically given three problems which they have to solve in five hours. Each student works on their own to solve the problems with no outside help, specifically no communication with other contestants, books, web access etc. Contestants are typically allowed to bring no programable wired keyboards and mice. [2] Usually to solve a task the contestant has to write a computer program (in C++) and submit it before the five-hour competition time ends. The program is graded based on secret test data. Since IOI 2010, tasks are divided into subtasks with graduated difficulty, and points are awarded only when all tests for a particular subtask yield correct results, within specific time and memory limits. 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 (a.k.a interactive problems). Another type of problem has the inputs publicly available, for these, the contestants have to submit an 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. Pascal has been removed as an available programming language as of 2019. [3] :11
IOI 2010 for the first time had a live web scoreboard with real-time provisional results. Submissions will be scored as soon as possible during the contest, and the results posted. Contestants will be aware of their scores, but not others', and may resubmit to improve their scores. Starting from 2012, IOI has been using the Contest Management System (CMS) for developing and monitoring the contest. [4]
The scores from the two competition days and all problems are summed up separately for each contestant. Medals are awarded depending on their relative total score. The top 50% of the contestants 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).
Prior to IOI 2010, students who did not receive medals did not have their scores published, although the scores of students who did not receive medals are still not available in the official results, they are known from the live web scoreboard. In IOI 2012 the top 3 nations ranked by aggregate score (Russia, China and USA) were subsequently awarded during the closing ceremony.
Analysis of female performance shows 77.9% of women obtain no medal, while 49.2% of men obtain no medal. "The average female participation was 4.4% in 1989–1994 and 2.2% in 1996–2014." It also suggests much higher participation of women on the national level, claiming sometimes double-digit percentages in total participation on the first stage. [5] President of the IOI (2011-2014), Richard Forster, says the competition has difficulty attracting women and that in spite of trying to solve it, "none of us have hit on quite what the problem is, let alone the solution." [1] The European Girls’ Olympiad in Informatics (EGOI), which was first held in 2021 was started with the goal to increscent female participants at IOI and other Informatics Olympiads. [6]
In IOI 2017 held in Iran, due to not being able to participate in Iran, the Israeli students participated in an offsite competition organized by IOI in Russia. [3] :11 Due to visa issues, the full USA team was unable to attend, although one contestant Zhezheng Luo [7] was able to attend by traveling with the Chinese team [8] and winning gold medal and 3rd place in standings. [9]
In IOI 2019 held in Azerbaijan, the Armenia team did not participate due to the dispute between the two countries, despite the guarantees provided [10] and official invitation letter sent by the host Azerbaijan.
Due to the COVID-19 pandemic, both the IOI 2020 and IOI 2021, originally scheduled to be hosted by Singapore, were held as online contests. The IOI 2022, hosted by Indonesia, was held as a hybrid event, with around 25% of the contestants participating online. [11]
Number | Year | Dates | Host country | Host city | Results | Website |
---|---|---|---|---|---|---|
1 | 1989 | May 16–19 | Bulgaria | Pravetz | [12] | |
2 | 1990 | July 15–21 | Belarus, Soviet Union | Minsk | [13] | |
3 | 1991 | May 19–25 | Greece | Athens | [14] | |
4 | 1992 | July 11–21 | Germany | Bonn | [15] | |
5 | 1993 | October 16–25 | Argentina | Mendoza | [16] | [17] |
6 | 1994 | July 3–10 | Sweden | Haninge | [18] | [19] |
7 | 1995 | June 26 – July 3 | Netherlands | Eindhoven | [20] | |
8 | 1996 | July 25 – August 2 | Hungary | Veszprém | [21] | |
9 | 1997 | November 30 – December 7 | South Africa | Cape Town | [22] | |
10 | 1998 | September 5–12 | Portugal | Setúbal | [23] | |
11 | 1999 | October 9–16 | Turkey | Antalya-Belek | [24] | |
12 | 2000 | September 23–30 | China | Beijing | [25] | |
13 | 2001 | July 14–21 | Finland | Tampere | [26] | |
14 | 2002 | August 18–25 | Korea Rep. | Yong-In | [27] | |
15 | 2003 | August 16–23 | United States | Kenosha, Wisconsin | [28] | |
16 | 2004 | September 11–18 | Greece | Athens | [29] | |
17 | 2005 | August 18–25 | Poland | Nowy Sącz | [30] | [31] |
18 | 2006 | August 13–20 | Mexico | Mérida, Yucatán | [32] | |
19 | 2007 | August 15–22 | Croatia | Zagreb | [33] | [34] |
20 | 2008 | August 16–23 | Egypt | Cairo | [35] | |
21 | 2009 | August 8–15 | Bulgaria | Plovdiv | [36] | [37] |
22 | 2010 | August 14–21 | Canada | Waterloo, Ontario | [38] | [39] |
23 | 2011 | July 22–29 | Thailand | Pattaya | [40] | [41] |
24 | 2012 | September 23–30 | Italy | Sirmione and Montichiari | [42] | [43] |
25 | 2013 | July 6–13 | Australia | Brisbane | [44] | [45] |
26 | 2014 | July 13–20 | Taiwan | Taipei | [46] | [47] |
27 | 2015 | July 26 – August 2 | Kazakhstan | Almaty | [48] | [49] |
28 | 2016 | August 12–19 | Russia | Kazan | [50] | [51] |
29 | 2017 | July 28 – August 4 | Iran | Tehran | [52] | [53] |
30 | 2018 | September 1–8 | Japan | Tsukuba | [54] | [55] |
31 | 2019 | August 4–11 | Azerbaijan | Baku | [56] | [57] |
32 | 2020 | September 13–19 a | Singapore | online | [58] | [59] |
33 | 2021 | June 19–25 | Singapore | online | [60] | [61] |
34 | 2022 | August 7–15 | Indonesia | Yogyakarta | [62] | [63] |
35 | 2023 | August 28 – September 4 | Hungary | Szeged | [64] | [65] |
36 | 2024 | September 1–8 | Egypt | Alexandria | [66] | [67] |
37 | 2025 | Bolivia | La Paz | [68] | ||
38 | 2026 | Uzbekistan | [69] | |||
39 | 2027 | Germany | Potsdam | |||
Rank | Nation | Gold | Silver | Bronze | Total |
---|---|---|---|---|---|
1 | China (CHN) | 100 | 27 | 12 | 139 |
2 | Russia (RUS) | 68 | 40 | 12 | 120 |
3 | United States (USA) | 65 | 38 | 16 | 119 |
4 | South Korea (KOR) | 48 | 47 | 28 | 123 |
5 | Poland (POL) | 42 | 50 | 35 | 127 |
6 | Japan (JPN) | 35 | 28 | 10 | 73 |
7 | Romania (ROU) | 33 | 58 | 36 | 127 |
8 | Iran (IRN) | 31 | 65 | 23 | 119 |
9 | Bulgaria (BGR) | 27 | 51 | 45 | 123 |
10 | Taiwan (TWN) | 25 | 61 | 27 | 113 |
Totals (10 entries) | 474 | 465 | 244 | 1,183 |
The following is a list of the top performers in the history of the IOI. [70] The P sign indicates a perfect score, a rare achievement in IOI history. The U sign indicates an unofficial participation, where a contestant participated in a host's second team. Also, first (I), second (II) and third (III) places among gold medalists are indicated where appropriate.
Name | Team | Years | ||||||
---|---|---|---|---|---|---|---|---|
Gennady Korotkevich | Belarus | G(II) 2012 | GP(I) 2011 | G(I) 2010 | G(I) 2009 | G 2008 | G 2007 | S 2006 |
Bruce Merry | South Africa | G 2001 | G 2000 | S 1999 | B 1998 | B 1997 | B 1996 | |
Rumen Hristov | Bulgaria | G 2012 | G 2011 | G(II) 2010 | S 2009 | S 2008 | ||
Hristo Venev | Bulgaria | G 2016 | G 2015 | G 2014 | G 2013 | S 2012 | ||
Encho Mishinev | Bulgaria | G 2017 | G 2014 | S 2016 | S 2015 | S 2013 | ||
Egor Lifar | Russia | G 2021 | G 2019 | S 2020 | S 2018 | S 2017 | ||
Harris Leung | Hong Kong | G 2021 | G(III) 2020 | S 2019 | B 2018 | B 2017 | ||
Zixiang Zhou | Canada | G 2022 | G 2021 | G 2020 | G(III) 2019 | S 2018 | ||
Wolfgang Thaller | Austria | G 1997 | G 1996 | S 1999 | S 1998 | |||
Andrzej Gąsienica-Samek | Poland | G 1999 | G 1998 | G 1997 | S 1996 | |||
Martin Pettai | Estonia | G 2002 | G 2001 | G 2000 | S 1999 | |||
Alex Schwendner | United States | G 2005 | G 2003 | S 2004 | S 2002 | |||
Filip Wolski | Poland | G(I) 2006 | G 2005 | G 2004 | G 2003 | |||
Goran Žužić | Croatia | G 2008 | G 2007 | S 2009 | B 2006 | |||
Vlad Alexandru Gavrilă | Romania | G 2013 | G 2012 | S 2011 | B 2010 | |||
Eduard Batmendijn | Slovakia | G 2015 | G 2013 | G 2012 | S 2014 | |||
Rareș Darius Buhai | Romania | G 2015 | G 2014 | G 2013 | G 2012 | |||
Yuta Takaya | Japan | G(I) 2017 | G 2016 | G 2015 | G 2014 | |||
Nikoloz Birkadze | Georgia | G 2020 | G 2019 | G 2018 | S 2017 | |||
Dorijan Lendvaj | Croatia | G 2022 | G 2021 | S 2020 | B 2019 | |||
Patrick Pavić | Croatia | G 2022 | G 2021 | G 2020 | S 2019 | |||
Fredrik Huss | Sweden | GP(I) 1993 | GP(I) 1992 | S 1991 | ||||
Martin Mareš | Czech Republic | G 1995 | G 1994 | GP(I) 1993 | ||||
Vladimir Martianov | Russia | G 1999 | GP(I) 1998 | G(I) 1997 | ||||
John Pardon | United States | G 2007 | G 2006 | G 2005 | ||||
Marcin Andrychowicz | Poland | G 2008 | G 2007 | G 2006 | ||||
Neal Wu | United States | G 2010 | G 2009 | G 2008 | ||||
Shogo Murai | Japan | G 2012 | G 2011 | G 2010 | ||||
Scott Wu | United States | GP(I) 2014 | G 2013 | G 2012 | ||||
Jarosław Kwiecień | Poland | G 2016 | G 2015 | G 2014 | ||||
Vladimir Romanov | Russia | G 2019 | G 2018 | G 2017 | ||||
Masataka Yoneda | Japan | G 2020 | G 2019 | GU 2018 | ||||
Daiki Kodama | Japan | G 2023 | G 2022 | G 2021 | ||||
Most participating countries use feeder competitions to select their team. A number of these are listed below:
The International Mathematical Olympiad (IMO) is a mathematical olympiad for pre-university students, and is the oldest of the International Science Olympiads. It is “the most prestigious” mathematical competition in the world. The first IMO was held in Romania in 1959. It has since been held annually, except in 1980. More than 100 countries participate. Each country sends a team of up to six students, plus one team leader, one deputy leader, and observers.
The International Collegiate Programming Contest, known as the ICPC, is an annual multi-tiered competitive programming competition among the universities of the world. Directed by ICPC Executive Director and Baylor Professor William B. Poucher, the ICPC operates autonomous regional contests covering six continents culminating in a global World Finals every year. In 2018, ICPC participation included 52,709 students from 3,233 universities in 110 countries.
Hong Kong Olympiad in Informatics is an annual programming competition for secondary school students in Hong Kong, emphasizing on problem solving techniques and programming skills. It is co-organized by the Hong Kong Association for Computer Education (HKACE) and the Hong Kong Education Bureau (EDB). It serves as a preliminary contest to international, national and regional competitions such as the China National Olympiad in Informatics (NOI) and the International Olympiad in Informatics (IOI). The first HKOI was held in 1997.
The Canadian Computing Competition (CCC) is an annual programming competition for secondary school students in Canada, organized by the Centre for Education in Mathematics and Computing at the University of Waterloo. Stage 1 is written at high schools and can be written in the programming language of the students' choice, with only a few, such as Maple and Mathematica, disallowed. There are two levels of problems presented, Junior and Senior. The top 20 students in the Senior division are invited to the University of Waterloo to participate in Stage 2, the Canadian Computing Olympiad (CCO). CCO participants are restricted to languages permitted at the IOI, which currently includes only Java, C and C++.. The CCO is used to select students to represent Canada at the IOI.
The United States of America Computing Olympiad (USACO) is an online computer programming competition, which serves as qualification for the International Olympiad in Informatics (IOI) in the United States of America. Primarily for secondary school students in the United States, the USACO offers four competitions during the academic year. Participants compete in four increasingly difficult divisions, each of which is provided a distinct set of 3 solvable competitive programming problems during each contest. Coding & submitting computer programs can be done in one of four languages: C, C++, Java, and Python. Competitors begin in the Bronze division, and advance through the levels by performing well in their current division.
The Central European Olympiad in Informatics (CEOI) is an annual informatics competition for secondary school students. Each of the participating central European countries (plus one or two guest countries, and a local team from the host area) sends a team of up to four contestants, a team leader and a deputy team leader. The contestants compete individually, i.e. a team score is not calculated. Competitors are selected through national competitive programming contests.
The British Informatics Olympiad (BIO) is an annual computer-programming competition for secondary and sixth-form students. Any student under 19 who is in full-time pre-university education and resident in mainland Britain is eligible to compete. The competition is composed of two rounds - a preliminary 3-question, 3-hour exam paper sat at the participant's school and a final round. The top-15 performing students each year are invited to the finals where they attempt to solve several more difficult problems, some written, some involving programming. Typically a score of 75 to 90 out of 100 is required on the first round of the competition to reach the final.
The South African Computing Olympiad (SACO) is an annual computer programming competition for secondary school students in South Africa. The South African team for the International Olympiad in Informatics is selected through it.
The Indian Computing Olympiad is an annual computer programming competition that selects four participants to represent India at the International Olympiad in Informatics. ICO is conducted by the Indian Association for Research in Computing Science. The competition is held in three stages. For the first stage, students may compete in the Zonal Computing Olympiad, or the Zonal Informatics Olympiad. The following two rounds are the Indian National Olympiad in Informatics and the International Olympiad in Informatics Training Camp.
This article describes the selection process, by country, for entrance into the International Mathematical Olympiad.
The North American Computational Linguistics Open competition (NACLO), formerly called the North American Computational Linguistics Olympiad before January 1, 2020, is a computational linguistics competition for high school students in the United States and Canada that has been held since 2007. For the 2021 Open competition, approximately 1300 to 1400 students competed. Since 2008 the contest has consisted of two rounds, the second being administered to the top scorers in the first round. The top-scoring students on the second round qualify for the International Linguistics Olympiad (IOL), one of the international science olympiads.
Petr Mitrichev is a Russian competitive programmer who has won multiple major international competitions. His accomplishments include gold and silver (2001) medals in the IOI, gold medals in the ACM ICPC World Finals as part of the team of Moscow State University and winning Google Code Jam (2006), the Topcoder Open, the Topcoder Collegiate Challenge, Facebook Hacker Cup as well as numerous national and online contests. He has achieved the highest rating ever among the Algorithm competitors of Topcoder and consistently ranks in the top two of the world. He is the second highest rated Algorithm coder on Topcoder ratings as of February 2021. He currently works at Google on the search engine and helps to prepare Code Jam.
Competitive programming or sport programming is a mind sport involving participants trying to program according to provided specifications. The contests are usually held over the Internet or a local network. Competitive programming is recognized and supported by several multinational software and Internet companies, such as Google, and Meta.
The European Girls' Mathematical Olympiad (EGMO) is a mathematical olympiad for girls which started in 2012, and is held in April each year. It was inspired by the China Girls Mathematical Olympiad (CGMO). Although the competition is held in Europe, it is open to female participants from all over the world, and is considered the most prestigious mathematics competition for girls. In recent years, participants from around 55 countries have been invited to the competition.
Gennady Korotkevich is a Belarusian competitive sport programmer who has won major international competitions since the age of 11, as well as numerous national competitions. Widely regarded as one of the greatest competitive sport programmer of all time, his top accomplishments include six consecutive gold medals in the International Olympiad in Informatics as well as the world championship in the 2013 and 2015 International Collegiate Programming Contest World Finals. As of October 2023, Gennady is the highest-rated programmer on Codeforces, CodeChef, Topcoder, AtCoder and HackerRank. In August 2024, he achieved a historic rating of 4009 on Codeforces, becoming the first to break the 4000 barrier.
CodeChef is an online educational and competitive programming platform. It began as an educational initiative in 2009 by Directi, an Indian software company. In 2020, it was purchased by Unacademy.
Codeforces is a website that hosts competitive programming contests. It is maintained by a group of competitive programmers from ITMO University led by Mikhail Mirzayanov. Since 2013, Codeforces claims to surpass Topcoder in terms of active contestants. As of 2019, it has over 600,000 registered users. Codeforces along with other similar websites are used by some sport programmers, like Gennady Korotkevich, Petr Mitrichev, Benjamin Qi and Makoto Soejima, and by other programmers interested in furthering their careers.
Makoto Soejima is a Japanese former competitive programmer. He is one of three people to have won both the Google Code Jam and the Facebook Hacker Cup and the only one to have also won a gold medal with a perfect score at the International Mathematical Olympiad (IMO). In International Science Olympiads, he has won three gold medals and one bronze in the International Mathematical Olympiad as well as two silver medals in the International Olympiad in Informatics (IOI).
The Romanian Olympiad in Informatics is an annual competitive programming contest for secondary school students in Romania. It gathers about 300 high-school students and about 160 gymnasium students.
Scott Wu is a Chinese American entrepreneur who is co-founder of Cognition AI and Lunchclub. He is also competitive programmer who won three gold medals at the International Olympiad in Informatics (IOI) and came third place in the 2021 Google Code Jam.
There is really only one USA contestant on site, it looks like he came with the Chinese team (straight from China).
{{cite web}}
: CS1 maint: bot: original URL status unknown (link)