Back to Global Exam Guide

IOI — International Olympiad in Informatics

May 21, 2026 Wasil Zafar 20 min read

The world's most prestigious programming competition for secondary school students — algorithmic problem-solving with real-time grading.

Table of Contents

  1. What Is the IOI?
  2. Key Facts & Statistics
  3. Format & Problem Areas
  4. Selection Pathway (USACO)
  5. IOI Alumni & Tech Careers
  6. Preparation Tips
  7. Study Plan Generator

What Is the IOI?

The International Olympiad in Informatics (IOI) is the world's most prestigious competitive programming contest for secondary school students. Founded in 1989, it brings together approximately 350 contestants from 80+ countries, each team comprising up to 4 students who solve algorithmic problems by writing computer programs judged by an automated online system.

Unlike the IMO (which requires handwritten proofs) or IPhO (which includes experiments), the IOI is entirely digital: contestants write code on competition computers, submit it to an online judge, and receive real-time feedback on whether their solution passes test cases. This format tests not just algorithmic thinking but also implementation skill, debugging under pressure, and time management across subtasks of varying difficulty.

The IOI has become a major talent pipeline for the technology industry. IOI medallists are disproportionately represented among founders and early engineers at companies like Google, Facebook, Dropbox, and Stripe. The competition develops exactly the skills most valued in software engineering interviews at top tech companies: algorithm design, data structure mastery, and efficient problem decomposition.

Key Facts Official Site
  • Founded: 1989 (Bulgaria)
  • Participants: ~300 students, 90+ countries
  • Team size: 4 students per country
  • Tasks: 6 total (3 per day × 2 days)
  • Duration: 5 hrs per day
  • Language: Programming (C++ standard)
  • Rules: No internet access
  • Scoring: Subtasks (0–100 per task)
  • Medals: Gold, Silver, Bronze + HM
  • Age: Under 20, pre-university only
Source: IOI Official

Key Facts & Statistics

IOI by the Numbers:
  • Founded: 1989 in Pravetz, Bulgaria
  • Participating countries: 80+ (2024: 87 countries)
  • Contestants per year: ~350 (teams of up to 4)
  • Competition days: 2 days, 5 hours each
  • Problems: 3 per day = 6 total
  • Maximum score: 600 points (100 per problem)
  • Scoring method: Automated online judge with subtasks (partial credit)
  • Dominant language: C++ (~95% of submissions — speed advantage)
  • Medal distribution: Gold = top ~1/12, Silver = next ~2/12, Bronze = next ~3/12
  • Problem types: Batch (standard I/O), interactive, output-only, communication
  • Time limits: Typically 1–3 seconds per test case
  • Memory limits: Typically 256 MB – 1 GB
  • No internet: Only offline documentation (language reference) available
  • Subtask structure: Each problem has 3–5 subtasks of increasing difficulty
  • Real-time feedback: Contestants can see if submissions pass during the contest

Format & Problem Areas

IOI Competition Structure
flowchart TD
    subgraph day1["Day 1 — 5 Hours | 3 Problems"]
        direction LR
        B["Problem A
Usually Easier
100 points"] C["Problem B
Medium
100 points"] D["Problem C
Hardest Day 1
100 points"] end subgraph day2["Day 2 — 5 Hours | 3 Problems"] direction LR F["Problem D
Usually Easier
100 points"] G["Problem E
Medium
100 points"] H["Problem F
Hardest Overall
100 points"] end day1 --> I["Online Judge Scoring
Subtasks | Partial Credit
Max 600 total"] day2 --> I style D fill:#BF092F,color:#fff style H fill:#BF092F,color:#fff style I fill:#132440,color:#fff

Algorithm Topics

TopicKey Algorithms / TechniquesFrequencyDifficulty Notes
Dynamic ProgrammingKnapsack, LCS, tree DP, bitmask DP, DP optimizations (CHT, divide & conquer)~2 problems/yearMost common topic; often combined with other techniques
Graph AlgorithmsBFS/DFS, shortest paths, MST, network flow, strongly connected components, tree algorithms~2 problems/yearTrees are especially common; advanced graph problems on harder subtasks
Data StructuresSegment trees, BITs, balanced BSTs, persistent structures, DSU, sparse tables~1.5 problems/yearOften needed for efficient solutions to harder subtasks
Greedy AlgorithmsExchange arguments, interval scheduling, greedy with data structure support~1 problem/yearOften on "easier" problems but proofs of correctness are tricky
String AlgorithmsHashing, suffix arrays, suffix automata, Aho-Corasick, Z-algorithm~0.5 problems/yearLess common but appear periodically
Computational GeometryConvex hull, sweep line, polygon operations~0.3 problems/yearRare at IOI but appears occasionally
Interactive / CommunicationBinary search on answers, adaptive strategies, information-theoretic bounds~1 problem/yearIOI-specific format; requires different thinking
Why C++ Dominates IOI (~95% of submissions):
  • Speed: C++ is 10–50× faster than Python and 2–5× faster than Java for typical algorithmic tasks. With tight time limits (1–3 seconds), speed matters enormously.
  • STL: The C++ Standard Template Library provides efficient built-in data structures (set, map, priority_queue, vector) that eliminate boilerplate code.
  • Memory control: Direct memory management allows precise control of memory usage within competition limits.
  • Community: ~95% of competitive programming resources, editorials, and code examples are in C++. Learning another language puts you at a training disadvantage.
  • Bit manipulation: C++ provides direct access to bit operations, crucial for bitmask DP and other techniques.

Scoring & Medals

YearLocationGold CutoffSilver CutoffBronze CutoffTop Score
2024Alexandria, Egypt468340221600/600
2023Szeged, Hungary410293175564/600
2022Yogyakarta, Indonesia380268163600/600
2021Virtual (Singapore)398290176600/600
2019Baku, Azerbaijan310222140549/600

Selection Pathway (USACO)

US Selection Pipeline (USACO → IOI)
flowchart TD
    A["USACO Bronze
Monthly online contests
Basic algorithms
Ad hoc, brute force, sorting"] --> B["USACO Silver
BFS/DFS, binary search
Greedy, prefix sums
Basic graph theory"] B --> C["USACO Gold
DP, segment trees, DSU
Shortest paths, MST
Advanced graph algorithms"] C --> D["USACO Platinum
Advanced DP, flows
Convex hull trick
Heavy-light decomposition"] D --> E["USACO Finalists
Top ~26 Platinum scorers
Invited to training camp"] E --> F["US IOI Team
4 students selected
Represent USA at IOI"] style A fill:#3B9797,color:#fff style B fill:#3B9797,color:#fff style C fill:#16476A,color:#fff style D fill:#132440,color:#fff style F fill:#BF092F,color:#fff
Selection Varies by Country:
  • USA: USACO monthly contests (Bronze→Silver→Gold→Platinum) → USACO Camp (~26 finalists) → IOI team (4)
  • China: Provincial NOI preliminary → NOI (National Olympiad) → National training team → IOI team (4)
  • Japan: JOI preliminary → JOI final → JOI Spring Camp → IOI team (4)
  • Russia: Regional olympiad → All-Russian Olympiad → IOI team selection (4)
  • South Korea: KOI → National training → IOI team (4)

IOI Alumni & Tech Careers

Research IOI Performance and Tech Career Correlation

IOI medallists are massively overrepresented among founders, CTOs, and distinguished engineers at top technology companies. The skills developed — algorithmic thinking, efficient implementation, time-pressure performance — directly translate to software engineering excellence.

PersonIOI RecordCareer Achievement
Gennady Korotkevich6 IOI Golds (2007–2012, youngest gold at 11)Legendary competitive programmer, Google researcher
Petr MitrichevIOI Gold 2000, 2002Google Distinguished Engineer, TopCoder legend
Adam D'AngeloIOI Silver 2001 (USA)Co-founder & CEO of Quora, former Facebook CTO
Nikolai DurovIOI Gold 1996, 1997, 1998 (3 golds)Co-founder of VK and Telegram, architect
Filip WolskiIOI Gold (Poland)Co-founder of OpenAI
Matei ZahariaIOI Gold 2003 (Canada)Creator of Apache Spark, Databricks co-founder
Razvan SurdulescuIOI Gold (Romania)Early Google engineer, infrastructure

Key Insight: Top tech companies (Google, Meta, Jane Street, Citadel, Two Sigma) actively recruit from IOI/ICPC communities. Competitive programming success is strongly correlated with ability to pass technical interviews and perform well in systems engineering roles. Many companies offer direct internship/employment paths for IOI medallists.

Tech Careers FAANG Competitive Programming Startup Founders

Preparation Tips

How to Prepare for the IOI:
  • Master C++ competitively: Learn competitive programming idioms — fast I/O, macros, STL mastery (set, map, priority_queue, vector operations). Read other contestants' solutions on Codeforces to learn elegant implementation patterns.
  • Progress through USACO divisions systematically: Each USACO division (Bronze→Silver→Gold→Platinum) introduces new algorithm families. Don't skip ahead — each level builds on the previous. Aim to promote within 1–2 contests per division.
  • Core textbook — Competitive Programmer's Handbook (Laaksonen): Free PDF covering all essential algorithms and data structures for competitive programming. Read cover to cover, implementing every algorithm yourself.
  • Practice platforms: Codeforces (rated contests 2–3×/week), AtCoder (excellent problem quality), USACO training pages (curated progression), CSES Problem Set (300 problems covering all topics)
  • Implement algorithms from scratch, not libraries: You must be able to code segment trees, suffix arrays, network flows, etc. from memory under time pressure. Practice implementing from scratch until it's muscle memory.
  • Upsolve religiously: After every contest, solve ALL problems you couldn't solve during the contest. Read editorials, understand the approach, then implement without looking. This is where real learning happens.
  • Learn to analyze time complexity: For every solution, calculate its big-O complexity and verify it fits within time limits. IOI problems typically require O(n log n) or better for full points. Subtasks often reward O(n²) solutions with partial credit.
  • Practice partial scoring strategy: IOI uses subtasks — solving easier subtasks on all problems often scores higher than fully solving one problem. Start by reading all problems and solving easy subtasks first.
  • Virtual contests: Simulate IOI conditions — 5 hours, 3 problems, no distractions. Practice the mental endurance required for extended problem-solving sessions.
Common Pitfalls:
  • Spending too long on one problem: With 6 problems across 2 days, getting partial credit on multiple problems is often better than one perfect solution. Check subtask constraints — a O(n²) solution for n≤1000 gets you 30–40% on many problems.
  • Not reading all problems first: Spend the first 15–20 minutes reading all 3 problems. The "hardest" problem by number isn't always the hardest for you — your strengths may make Problem C easier than Problem B.
  • Debugging inefficiently: Practice systematic debugging. Use stress testing (random test generator + brute force comparison) to find counterexamples. Print intermediate values. Don't stare at code hoping to spot the bug.
  • Ignoring interactive/communication problems: IOI regularly features interactive problems where your program communicates with a judge program. Practice this format — it requires different thinking than batch problems.
  • Using Python for IOI: While allowed, Python is typically 10–50× slower than C++. With strict time limits, most full-scoring solutions are only possible in C++. Switch to C++ early in your preparation.

Syllabus Progress Tracker

Track your preparation topic-by-topic. Progress is auto-saved and exportable.