This is a 100+ part playbook that takes you from basic C++ programming to a Gold medal at IOI. It has tutorials on 30+ algorithms and data structures, and 75+ problems based on those topics, sorted by increasing difficulty.
Popular features of the playlist are as follows:
- Tutorials with intuitive videos and animations to explain the main idea, and thereafter go into further depth.
- Divided into 4 parts - C++ review, beginner level (zonal level problems), intermediate (national level problems) and advanced (IOI level problems).
- Problems from previous IOIs, IOI selection rounds, and IOI training camps. (This is important because IOI problems have a different style from most problems on Codeforces, CodeChef. IOI problems focus much more on algorithm as opposed to 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.
Expected time to completion: ~120 sessions (about 4 months if you make progress daily, and 7-9 months is you make progress 3-4 times a week).
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!