Curriculum

31 modules mapped to the IOI 2025 Syllabus, in prerequisite order.

L1 · Foundations

C++, complexity, the STL and first algorithms.

  1. F1

    C++ basics

    ⁦3⁩ weeks

    I/O, variables, conditions, loops, functions, arrays, strings

  2. F2

    Complexity

    1 week

    Big-O, 10^8 operations per second, reading constraints, overflow

    Requires: F1

  3. F3

    STL

    ⁦2⁩ weeks

    vector, pair, sort, set/map, stack/queue, priority_queue

    Requires: F1

  4. F4

    Brute force and simulation

    1 week

    Trying all cases, careful implementation

    Requires: F1

  5. F5

    Basic maths

    1 week

    Divisibility, gcd, primes and sieve, modular add/multiply, fast exponentiation

    Requires: F2

  6. F6

    Sorting and first greedy

    ⁦2⁩ weeks

    Sorting as a tool, first exchange argument

    Requires: F3

  7. F7

    Prefix sums

    1 week

    1D and 2D, difference arrays

    Requires: F2

  8. F8

    Binary search

    ⁦2⁩ weeks

    On sorted arrays and on the answer

    Requires: F6

  9. F9

    Two pointers

    1 week

    Sliding window

    Requires: F7, F8

  10. F10

    Recursion

    ⁦2⁩ weeks

    Backtracking, subsets, permutations, bitmask enumeration

    Requires: F1

  11. F11

    First DP

    1 week

    1D DP, coins, LIS O(n²), knapsack

    Requires: F10

  12. F12

    First graphs

    1 week

    Graph representation, BFS/DFS on grids, connected components

    Requires: F3, F10

L2 · Algorithms

Greedy, DP, graphs and data structures.

  1. A1

    Greedy with proof

    ⁦2⁩ weeks

    Exchange argument, scheduling, when greedy fails

    Requires: F6

  2. A2

    Binary search on answer

    1 week

    Check function + monotonicity

    Requires: F8

  3. A3

    DP II

    ⁦4⁩ weeks

    2D DP, LCS, knapsack variants, interval DP, bitmask DP

    Requires: F11

  4. A4

    Graphs II

    ⁦3⁩ weeks

    Dijkstra, 0-1 BFS, Bellman-Ford, Floyd, topological sort, DP on DAGs

    Requires: F12

  5. A5

    DSU and MST

    1 week

    Union-find, Kruskal, Prim

    Requires: A4

  6. A6

    Trees I

    ⁦3⁩ weeks

    DFS order, subtree sizes, tree DP, diameter, LCA (binary lifting)

    Requires: F12, A3

  7. A7

    Range queries

    ⁦3⁩ weeks

    Sparse table, Fenwick, segment tree (point update), coordinate compression

    Requires: F7

  8. A8

    Combinatorics

    1 week

    Counting, Pascal, inclusion–exclusion, pigeonhole

    Requires: F5

  9. A9

    Ad-hoc and constructive

    ⁦2⁩ weeks

    Invariants, parity, building examples, reasoning from small cases

    Requires: All of L1

  10. A10

    IOI task formats

    1 week

    Function-signature graders, interactive, output-only, subtasks

    Requires: F1

  11. A11

    Stress testing

    1 week

    Brute + generator + comparison, systematic debugging

    Requires: F4

L3 · Olympiad

IOI level: mixed problems and advanced techniques.

  1. O1

    Segment tree II

    Lazy propagation, merging, walk, persistent segment tree

    Requires: A7

  2. O2

    Trees II

    Euler tour + DS, small-to-large, HLD, centroid decomposition, virtual tree

    Requires: A6, O1

  3. O3

    Advanced DP

    Convex hull trick / Li Chao, divide & conquer opt, Knuth, digit DP, SOS, DP + DS

    Requires: A3, O1

  4. O4

    Graphs III

    SCC, bridges/articulation points, 2-SAT, Euler paths, bipartite matching, max flow / min cut

    Requires: A4, A5

  5. O5

    Offline techniques

    Sweep line, sqrt decomposition, Mo, parallel binary search, DSU rollback, offline D&C

    Requires: A7

  6. O6

    Geometry within IOI scope

    Cross product, orientation, polygon area, point in polygon, convex hull, integers only

    Requires: F5

  7. O7

    Advanced problem solving

    Constructive, interactive with query limits, communication tasks, randomization, heuristics for partial scoring

    Requires: A9, A10

  8. O8

    IOI strategy

    Reading all three problems, harvesting subtasks, splitting 5 hours, when to move on

    Requires: A10

Electives

  1. E

    Electives

    KMP / Z / hashing / suffix array, modular inverse, FFT, matrix exponentiation, Sprague-Grundy

    Requires: After O1–O8