Curriculum
31 modules mapped to the IOI 2025 Syllabus, in prerequisite order.
L1 · Foundations
C++, complexity, the STL and first algorithms.
- F13 weeks
C++ basics
I/O, variables, conditions, loops, functions, arrays, strings
- F21 week
Complexity
Big-O, 10^8 operations per second, reading constraints, overflow
Requires: F1
- F32 weeks
STL
vector, pair, sort, set/map, stack/queue, priority_queue
Requires: F1
- F41 week
Brute force and simulation
Trying all cases, careful implementation
Requires: F1
- F51 week
Basic maths
Divisibility, gcd, primes and sieve, modular add/multiply, fast exponentiation
Requires: F2
- F62 weeks
Sorting and first greedy
Sorting as a tool, first exchange argument
Requires: F3
- F71 week
Prefix sums
1D and 2D, difference arrays
Requires: F2
- F82 weeks
Binary search
On sorted arrays and on the answer
Requires: F6
- F91 week
Two pointers
Sliding window
Requires: F7, F8
- F102 weeks
Recursion
Backtracking, subsets, permutations, bitmask enumeration
Requires: F1
- F111 week
First DP
1D DP, coins, LIS O(n²), knapsack
Requires: F10
- F121 week
First graphs
Graph representation, BFS/DFS on grids, connected components
Requires: F3, F10
L2 · Algorithms
Greedy, DP, graphs and data structures.
- A12 weeks
Greedy with proof
Exchange argument, scheduling, when greedy fails
Requires: F6
- A21 week
Binary search on answer
Check function + monotonicity
Requires: F8
- A34 weeks
DP II
2D DP, LCS, knapsack variants, interval DP, bitmask DP
Requires: F11
- A43 weeks
Graphs II
Dijkstra, 0-1 BFS, Bellman-Ford, Floyd, topological sort, DP on DAGs
Requires: F12
- A51 week
DSU and MST
Union-find, Kruskal, Prim
Requires: A4
- A63 weeks
Trees I
DFS order, subtree sizes, tree DP, diameter, LCA (binary lifting)
Requires: F12, A3
- A73 weeks
Range queries
Sparse table, Fenwick, segment tree (point update), coordinate compression
Requires: F7
- A81 week
Combinatorics
Counting, Pascal, inclusion–exclusion, pigeonhole
Requires: F5
- A92 weeks
Ad-hoc and constructive
Invariants, parity, building examples, reasoning from small cases
Requires: All of L1
- A101 week
IOI task formats
Function-signature graders, interactive, output-only, subtasks
Requires: F1
- A111 week
Stress testing
Brute + generator + comparison, systematic debugging
Requires: F4
L3 · Olympiad
IOI level: mixed problems and advanced techniques.
- O1
Segment tree II
Lazy propagation, merging, walk, persistent segment tree
Requires: A7
- O2
Trees II
Euler tour + DS, small-to-large, HLD, centroid decomposition, virtual tree
Requires: A6, O1
- O3
Advanced DP
Convex hull trick / Li Chao, divide & conquer opt, Knuth, digit DP, SOS, DP + DS
Requires: A3, O1
- O4
Graphs III
SCC, bridges/articulation points, 2-SAT, Euler paths, bipartite matching, max flow / min cut
Requires: A4, A5
- O5
Offline techniques
Sweep line, sqrt decomposition, Mo, parallel binary search, DSU rollback, offline D&C
Requires: A7
- O6
Geometry within IOI scope
Cross product, orientation, polygon area, point in polygon, convex hull, integers only
Requires: F5
- O7
Advanced problem solving
Constructive, interactive with query limits, communication tasks, randomization, heuristics for partial scoring
Requires: A9, A10
- O8
IOI strategy
Reading all three problems, harvesting subtasks, splitting 5 hours, when to move on
Requires: A10
Electives
- E
Electives
KMP / Z / hashing / suffix array, modular inverse, FFT, matrix exponentiation, Sprague-Grundy
Requires: After O1–O8