IOI Olympiad (International Olympiad in Informatics)
Last Updated :
26 Jul, 2025
The International Olympiad in Informatics (IOI) is an annual Informatics competition launched in 1989 by the United Nations Educational, Scientific and Cultural Organization (UNESCO). This article provides a brief introduction about IOI Olympiad along with the eligibility, syllabus, venue, rules, rewards, etc.

What is IOI Olympiad?
The term "IOI" typically refers to the International Olympiad in Informatics. The IOI Olympiad is an annual Competitive Programming competition for secondary school students from around the world. It is one of the most prestigious competitions in the field of computer science and programming. Participants, usually high school students, compete individually to showcase their problem-solving and programming skills by solving a set of complex algorithmic problems within a limited time frame.
Aim of IOI Olympiad:
The primary aim of the IOI Olympiad is to provide a common platform for students to come together and showcase their problem-solving and programming skills in the field of Computer Science and Informatics. It aims to:
- Promote Culture of Computer Science: IOI Olympiad aims to promote Computer Science education and encourage young minds to pursue careers in this field. It helps enlighten students about the importance of computer science and informatics.
- Foster Problem-Solving Skills: The cut-throat competition challenges participants with a series of complex algorithmic problems that require creative thinking and problem-solving skill. This leads to the development of skills among the participants.
- International Collaboration: IOI Olympiad brings together talented young individuals from different countries, establishing international relations and cultural exchange. It promotes a sense of global unity and cooperation in the field of informatics.
- Setting Standards: The Olympiad aims for excellence and motivates students to continuously improve and achieve efficiency. It is used as a benchmark to measure proficiency among students.
- Promoting Fairness and Integrity: The competition is conducted with a strong emphasis on fairness and integrity. It aims to create a level playing field for all participants and maintain the highest ethical standards in the competition.
Each participating Country is represented by a National Delegation. All members of a National Delegation represent one Country. A National Delegation is headed by a Delegation Leader and has a team of one to four contestants and if there is more than one Contestant, then the team may include a Deputy Leader. The team will compete in a two-day competition. Each team competes to maximize their score by solving three algorithmic problems within five hours on each competition day.
Eligibility for IOI Olympiad:
Any participant must hold the given conditions to be eligible for taking part in the Olympiad.
- Students should be enrolled in a school at a level of secondary education or lower and should not be enrolled in a degree program for majority of the period from 1st September to 30th December before the year of the IOI Olympiad in which they want to appear.
- Students should not be older than 20 years on the 1st of July of the year of the IOI Olympiad in which they appear. There is no lower age limit for participation.
Rules for IOI Participants:
It is the responsibility of the delegation leader to ensure all the rules are being followed by the members of delegation.
- Team Composition:
- Competitors represent their home country in teams of up to four students.
- Language:
- All problem statements and communication during the contest are in English.
- Language in Tasks:
- Contestants can only use C++ to solve the problems.
- Equipment:
- Participants bring their own laptops or devices.
- In the competition room, blank paper, writing tools, Clarification Request Forms, snacks and water will be provided.
- The use of electronic gadgets (such as mobile phones, tablets, or calculators) and access to external resources (like the internet) are not allowed during the competition.
- Code of Conduct:
- Strict adherence to ethical standards is expected.
- Collaboration or communication with other participants is not allowed during the contest.
- Proctoring:
- The contest is closely monitored to prevent cheating.
- Proctors ensure compliance with the rules.
- Grading:
- Problems are graded by a panel of international judges.
- Each problem typically has a predefined score, and contestants receive points based on the correctness and efficiency of their solutions.
- Partial credit may be awarded for partial solutions.
- Fair Play and Sportsmanship:
- Participants are encouraged to exhibit good sportsmanship and respect for fellow competitors.
Violation of any rules may lead to disqualification of the team.
How to Participate in IOI Olympiad:
Students in each country are selected for their country's team through national computing contests.
- Ensure you meet the eligibility criteria and check with your country's IOI committee for specific eligibility details.
- Find out if your country has a National Olympiad Committee responsible for selecting IOI participants. They will provide information on the selection process and deadlines. Use the official IOI website for the same.
- Prepare for the national selection rounds and IOI Olympiad itself. This involves improving your problem-solving skills, algorithmic knowledge, and programming abilities. You can use CP handbook to prepare for the same.
- Compete in the national selection rounds and strive to achieve high scores or rankings. Your performance in these rounds will determine your eligibility to represent your country at IOI Olympiad.
- Once the national selection rounds are complete, the National Olympiad Committee will announce the team members who will represent your country at IOI Olympiad. If you are selected, you will receive further instructions and information.
Syllabus of IOI:
The syllabus for the International Olympiad in Informatics (IOI) covers a range of topics related to algorithmic problem-solving and programming. The following is a general overview of the typical subjects covered in the IOI syllabus:
|
Variables, data types, input/output, conditional statements, loops, functions, recursion, basic standard template library (STL) usage. |
Number theory, basic combinatorics, modular arithmetic, prime numbers, basic geometry. |
Arrays, linked lists, stacks, queues, trees, heaps, hash tables, graphs, etc. |
Modular arithmetic, greatest common divisor (GCD), least common multiple (LCM), modular inverses, Chinese Remainder Theorem (CRT). |
Basic principles, applications in optimization problems, interval scheduling, Huffman coding. |
Basic principles, memoization, tabulation, applications in optimization problems. |
Depth-First Search (DFS), Breadth-First Search (BFS), Dijkstra's algorithm, Floyd-Warshall algorithm, Kruskal's algorithm, Prim's algorithm, topological sorting. |
Counting principles, permutations, combinations, inclusion-exclusion principle, generating functions. |
Basic geometry concepts, convex hull, line-sweep algorithms. |
Introduction to game theory, minimax algorithm. |
Problem-solving on online judges such as Codeforces, AtCoder, HackerRank, etc. |
It is important to note that the specific topics covered in the IOI syllabus may vary slightly from year to year. Additionally, the difficulty level increases with each IOI competition, so participants are expected to have a strong understanding of these topics and be able to apply their knowledge to solve challenging problems.
The syllabus gets updated, so it becomes important to regularly update yourself with the official website.
Venue of IOI Olympiad:
There are a total of 91 countries and regions that can hold the finals of International Olympiad in Informatics. In order to select the students representing a country, every country conducts a prelims round on their own and select 4 students to represent the country in IOI Olympiad. A coach is sent with a delegation of 4 students and 2 adults by every participating country. The two-day long contest is followed by some cultural and recreational events organized on the organization.
Itinerary of IOI:
The International Olympiad in Informatics (IOI) is typically organized over several days, and participants engage in various activities during this period. Here's a general itinerary for the IOI Olympiad:
|
Day 1 | - Arrival and registration |
- Distribution of information packets |
- Welcome ceremony and introduction to the event |
Day 2 | - Opening ceremony with official speeches |
- Introduction to IOI rules and guidelines |
- Practice contest for participants |
- Team leaders and contestants get acquainted |
Day 3 | - Day 1 of the main contest |
- Contestants have to solve 3 problems to solve in 5 hours |
- Free time or social activities |
Day 4
| - Day 1 Analysis and Appeals
|
- Relax and Activities
|
Day 5 | - Day 2 of the main contest |
- Conclusion of the contest |
- Participants may have free time or engage in activities |
Day 6 | - Day 2 Analysis and Appeal - Excursion or cultural activities for participants |
Day 7 | - Closing ceremony with result announcement |
- Distribution of medals and certificates |
- Farewell speeches and acknowledgments |
- Official group photo |
- Farewell dinner or social event |
Day 8 | - Check-out from accommodation |
- Departure of participants to their respective countries |
It's important to note that the actual schedule and events may vary each year, and organizers may incorporate additional activities or make adjustments based on the host country's preferences. Participants also have the chance to interact with each other, exchange cultural experiences, and form friendships during the Olympiad.
Awards at IOI Olympiad:
A felicitation ceremony is conducted to address the participants of the event. After the contest, participants are awarded with medals based on their performance. The top 50% are given the medals.
The top 50% medals are divided into gold, silver and bronze. The ratio of medals is around 1:2:3:6 meaning:
- Around 1/12th of participants gets gold medal.
- Around 2/12th of participants gets silver medal.
- Around 3/12th of participants gets bronze medal.
- Around 6/12th of participants does not get a medal.
In most of the countries, students who qualify for IOI Olympiad are rewarded heavily. In India, qualifying for IOITC or IOI Olympiad gets direct admission to the top IIITs in the country, like IIIT Delhi, IIIT Hyderabad, etc.
IOI Olympiad Roadmap for Indian Students:
The 4 students to represent India at the IOI Olympiad are selected through the Indian Computing Olympiad (ICO). The conducting body for ICO is Indian Association for Research in Computer Science (IARCS). ICO is held in 3 stages and 4 students who qualify all the three rounds are selected to represent India for IOI. The three stages are:
- Zonal Informatics Olympiad (ZIO) or Zonal Computing Olympiad (ZCO): ZIO is an offline written test and does not require to code in any programming language. The duration of the exam is 3 hours. There are 4 questions in ZIO and each question has 3 sub-questions, so there are a total of 12 sub-questions. Each question is of 20 marks such that each sub-question carries 5 marks and if a student solves all the three sub-questions, he/she is awarded full 20 marks. So, the total marks for ZIO is 80 marks. In ZIO 2024, 462 students registered for the contest out of which 111 students got qualified.
ZCO is an online programming contest in which the questions are based on Algorithmic techniques. The allowed languages are C, C++, Java and Python. ZCO is open to all the students from 8th Grade to 12th Grade. Students require basic understanding of Data Structures and Algorithms to crack this Olympiad. In ZCO, students are given 2 problems each of 100 marks. The questions usually have subtasks to award points on solving the problem partially. Both ZIO and ZCO are usually held in between November to January. The registration fee for ZIO and ZCO is around 400-500 INR. Students who qualify either ZIO or ZCO are eligible for the next round. - Indian National Olympiad in Informatics (INOI): After qualifying ZIO or ZCO, the students advance to the next round which is INOI. INOI is a programming contest with 2 questions which are more difficult as compared to ZCO. Similar to ZCO, INOI is also graded partially. C++ is the only programming language allowed in INOI. INOI is usually held in January or February. Around 30 students are selected from INOI to advance to the next round.
- International Olympiad in Informatics Training Camp(IOITC): 30 students are selected to take part in the International Olympiad in Informatics Training Camp. IOITC is held in the month of May at the Chennai Mathematical Institute(CMI) for selecting the final 4 students to represent India. This training camp usually lasts for ten days. Finally, 4 students are selected to compete in IOI Olympiad.
IOI Olympiad Roadmap for Students in USA:
Students who want to participate in IOI Olympiad from USA need to qualify all the stages of United States of America Computing Olympiad (USACO). USACO is an online computer programming competition which serves as a qualification to participate in IOI Olympiad from USA. In an academic year, USACO conducts 4 contests: December, January, February and US Open. The US Open contest is 5 hours long whereas the others are 4 hours long. In each of these contests, there are 4 difficulty levels: Bronze, Silver, Gold and Platinum. All the participants have to start from Bronze Level. Each of these contests are scored out of 1000 points with 3 competitive programming problems of equal points (Each problem is worth 1000/3 = 333.33 points). The number of testcases in each problem can range from 10-30, with all of them having equal points weightage except the sample test cases which are not worth any points. Inputs and Outputs of testcases (except sample testcases) are not visible during the contest. USACO supports C++, Java and Python but it is recommended to use C++ as it would help in IOI Olympiad. The cutoff in each round is always a multiple of 50 and ranges from 600 to 850. If you score at least the cutoff score for your division, then you permanently qualify for the next division. 4 students who qualify all the rounds of USACO are selected to represent USA for IOI Olympiad.
Previous Years IOI Olympiad:
The IOI Olympiad has been held annually since 1989, and each year a different country takes on the role of the host. The competition involves multiple days of algorithmic problem-solving tasks for high school students from around the world. Here is the list of past 10 IOI Olympiads along with all the details:
|
28th August 2023 - 01 September 2023
| Hungary
| Szeged
|
351
|
87
|
07 August 2022 - 15 August 2022
| Indonesia
| Yogyakarta
|
349
|
88
|
19 June 2021 – 25 June 2021
| Singapore
| online
|
351
|
88
|
13 September 2020 – 19 September 2020
| Singapore
| online
|
343
|
87
|
04 August 2019 – 11 August 2019
| Azerbaijan
| Baku
|
327
|
87
|
01 September 2018 – 08 September 2018
| Japan
| Tsukuba
|
335
|
87
|
28 July 2017 – 04 August 2017
| Iran
| Tehran
|
308
|
83
|
12 August 2016 – 19 August 2016
| Russia
| Kazan
|
308
|
80
|
26 July 2015 – 02 August 2015
| Kazakhstan
| Almaty
|
322
|
83
|
13 July 2014 – 20 July 2014
| Taiwan
| Taipei
|
311
|
81
|
Similar Reads
Basics & Prerequisites
Data Structures
Array Data StructureIn this article, we introduce array, implementation in different popular languages, its basic operations and commonly seen problems / interview questions. An array stores items (in case of C/C++ and Java Primitive Arrays) or their references (in case of Python, JS, Java Non-Primitive) at contiguous
3 min read
String in Data StructureA string is a sequence of characters. The following facts make string an interesting data structure.Small set of elements. Unlike normal array, strings typically have smaller set of items. For example, lowercase English alphabet has only 26 characters. ASCII has only 256 characters.Strings are immut
2 min read
Hashing in Data StructureHashing is a technique used in data structures that efficiently stores and retrieves data in a way that allows for quick access. Hashing involves mapping data to a specific index in a hash table (an array of items) using a hash function. It enables fast retrieval of information based on its key. The
2 min read
Linked List Data StructureA linked list is a fundamental data structure in computer science. It mainly allows efficient insertion and deletion operations compared to arrays. Like arrays, it is also used to implement other data structures like stack, queue and deque. Hereâs the comparison of Linked List vs Arrays Linked List:
2 min read
Stack Data StructureA Stack is a linear data structure that follows a particular order in which the operations are performed. The order may be LIFO(Last In First Out) or FILO(First In Last Out). LIFO implies that the element that is inserted last, comes out first and FILO implies that the element that is inserted first
2 min read
Queue Data StructureA Queue Data Structure is a fundamental concept in computer science used for storing and managing data in a specific order. It follows the principle of "First in, First out" (FIFO), where the first element added to the queue is the first one to be removed. It is used as a buffer in computer systems
2 min read
Tree Data StructureTree Data Structure is a non-linear data structure in which a collection of elements known as nodes are connected to each other via edges such that there exists exactly one path between any two nodes. Types of TreeBinary Tree : Every node has at most two childrenTernary Tree : Every node has at most
4 min read
Graph Data StructureGraph Data Structure is a collection of nodes connected by edges. It's used to represent relationships between different entities. If you are looking for topic-wise list of problems on different topics like DFS, BFS, Topological Sort, Shortest Path, etc., please refer to Graph Algorithms. Basics of
3 min read
Trie Data StructureThe Trie data structure is a tree-like structure used for storing a dynamic set of strings. It allows for efficient retrieval and storage of keys, making it highly effective in handling large datasets. Trie supports operations such as insertion, search, deletion of keys, and prefix searches. In this
15+ min read
Algorithms
Searching AlgorithmsSearching algorithms are essential tools in computer science used to locate specific items within a collection of data. In this tutorial, we are mainly going to focus upon searching in an array. When we search an item in an array, there are two most common algorithms used based on the type of input
2 min read
Sorting AlgorithmsA Sorting Algorithm is used to rearrange a given array or list of elements in an order. For example, a given array [10, 20, 5, 2] becomes [2, 5, 10, 20] after sorting in increasing order and becomes [20, 10, 5, 2] after sorting in decreasing order. There exist different sorting algorithms for differ
3 min read
Introduction to RecursionThe process in which a function calls itself directly or indirectly is called recursion and the corresponding function is called a recursive function. A recursive algorithm takes one step toward solution and then recursively call itself to further move. The algorithm stops once we reach the solution
14 min read
Greedy AlgorithmsGreedy algorithms are a class of algorithms that make locally optimal choices at each step with the hope of finding a global optimum solution. At every step of the algorithm, we make a choice that looks the best at the moment. To make the choice, we sometimes sort the array so that we can always get
3 min read
Graph AlgorithmsGraph is a non-linear data structure like tree data structure. The limitation of tree is, it can only represent hierarchical data. For situations where nodes or vertices are randomly connected with each other other, we use Graph. Example situations where we use graph data structure are, a social net
3 min read
Dynamic Programming or DPDynamic Programming is an algorithmic technique with the following properties.It is mainly an optimization over plain recursion. Wherever we see a recursive solution that has repeated calls for the same inputs, we can optimize it using Dynamic Programming. The idea is to simply store the results of
3 min read
Bitwise AlgorithmsBitwise algorithms in Data Structures and Algorithms (DSA) involve manipulating individual bits of binary representations of numbers to perform operations efficiently. These algorithms utilize bitwise operators like AND, OR, XOR, NOT, Left Shift, and Right Shift.BasicsIntroduction to Bitwise Algorit
4 min read
Advanced
Segment TreeSegment Tree is a data structure that allows efficient querying and updating of intervals or segments of an array. It is particularly useful for problems involving range queries, such as finding the sum, minimum, maximum, or any other operation over a specific range of elements in an array. The tree
3 min read
Pattern SearchingPattern searching algorithms are essential tools in computer science and data processing. These algorithms are designed to efficiently find a particular pattern within a larger set of data. Patten SearchingImportant Pattern Searching Algorithms:Naive String Matching : A Simple Algorithm that works i
2 min read
GeometryGeometry is a branch of mathematics that studies the properties, measurements, and relationships of points, lines, angles, surfaces, and solids. From basic lines and angles to complex structures, it helps us understand the world around us.Geometry for Students and BeginnersThis section covers key br
2 min read
Interview Preparation
Practice Problem