This is a playbook that takes you *from basic C++ programming to a Gold medal at IOI*. Popular features of the playlist are as follows:

- Tutorials use
**intuitive videos and animations to explain the main idea**, and thereafter go into further depth. - All problems have been taken from previous IOIs, IOI selection rounds, and IOI training camps. This is important because
__IOI problems have a different style__ from average problem on Codeforces, CodeChef. They focus much more on algorithm vs mathematics. __Learn a few concepts, then solve a bunch of problems__**.** Learning 1 concept and then solving problems from that topic is not a good way to practice, because you already know the solution uses that particular concept. - Solutions via progressive hints.
__Do NOT read the full solution__. Solutions have been broken down into small hints. When you make *zero progress for 20-30 minutes*, read the hints up to the point where you *learn something new*. Then, *go back to solving the problem*. __Easily skip sections__ by marking items as done. Although this is a step-by-step playbook, you might know some of these topics from before. You can also alternate between concepts and problems if that is your preferred style.- Community where you can
__ask doubts and talk to other people__ who are preparing. Because hey, this thing is really really tough to do all by yourself.

The playbook is divided into four parts,

**C++ review**: 2 problems to check if you satisfy C++ pre-requisites. **Beginner**: What are algorithms? Sorting algorithms (quick-sort, merge-sort). Binary search. Dynamic programming. Along with ~30 problems, and 5 quizzes. **Intermediate**: Graphs. Breadth-first search and depth-first search. Single source shortest path. All pairs shortest path. Heaps and Heap Sort. Matrix exponentiation. Along with ~25 problems. **Advanced**: Minimum Spanning Tree. Segment Tree, including multiple extensions. Binary indexed tree. Tries. Convex Hull. Sieve. Along with ~15 problems.

**Expected time to completion**: ~100 sessions (about 3 months).

Doing the first half of this playlist is equivalent to taking the two undergraduate courses at MIT on algorithms (i.e. this and this), but this is more fun, more rigorous, and much much more practice.

I wish you all the best. Go forth and conquer!