Start Here
How this track is organised, how Codeforces works, and the practice loop that actually raises your rating.
What this track is
This track teaches competitive programming (solving short, precisely specified problems against a time limit) and the data structures and algorithms (DSA) behind it. The lessons are grouped by topic, in the order you should meet them: foundations first, contest craft last. Each stage has a milestone you can check against a real rating.
| Stage | What you learn | Milestone |
|---|---|---|
| Foundations | Reading problems, I/O, complexity, math, sorting, STL | Solve most 800-1000 rated problems |
| Arrays and searching | Prefix sums, hashing, two pointers, windows, binary search, stacks | Pupil (1200) |
| Recursion and bits | Recursion, backtracking, bit tricks | Recursive search feels routine |
| Greedy and construction | Build an answer, justify a greedy choice, sweep intervals | Constructive and greedy B problems |
| Counting and number theory | Primes, modular arithmetic, counting | Specialist math |
| Trees and graphs | Heaps, trees, BFS and DFS, shortest paths, DSU | Specialist (1400-1600) |
| Dynamic programming | States, transitions, then trees, masks and digits | Expert (1600+) |
| Range queries | Sparse tables, Fenwick and segment trees | Range queries around 1700-2000 |
| Advanced trees | Lowest common ancestors, Euler tours, small-to-large | Tree problems beyond one DFS |
| Strings | Hashing, pattern matching, tries | Standard string problems |
| Advanced topics | Games, expected value, matrix powers, connectivity | Candidate Master ideas |
| Contest craft | Interactive problems and how you train | Candidate Master (1900+) |
1 of 8