Competitive Programming Mastery Roadmap POPULAR
Competitive programming (CP) is a challenging and rewarding pursuit for those who enjoy problem-solving and coding. This roadmap is designed to take you from the basics to advanced algorithmic mastery.
Phase 0: The Mindset (Free Time Content)
Before diving into code, understand the philosophy and strategy behind top-tier competitive programmers.
- Ten years of Competitive Programming: By Arpa
- How to Solve Questions: Dominater Version
- How to read problem statements: By Umnik
Phase 1: Fundamentals & Language Selection
The first step is to master a programming language. C++ is highly recommended due to its speed and extensive Standard Template Library (STL).
1.1 Language Basics
- C++: Learn here
- Java: Learn here
- Python: Learn here
1.2 Standard Libraries
Mastering these is essential for efficient coding. Instead of writing common data structures from scratch, you use these built-in libraries:
- C++: Learn the STL Library (Vectors, Sets, Maps, Stacks). STL Guide
- Java: Learn the Collections Library. [Collections Guide]
Phase 2: Basic Problem Solving
Solve at least 5–10 problems for each topic to build a strong foundation. Use these practice sets to get started:
- Topics:-
- Data Types: Problems
- Loops: Problems
- Arrays: Problems
- Strings: Problems
- Functions: Problems
- Maths & Geometry: Problems
- Recursion: Problems
- General Practice: Set 1 | Set 2 | Set 3
Phase 3: Practice Platforms
Start solving actual competitive programming questions on these recommended platforms:
- Codeforces (The Gold Standard): Focus on the Problem Set. Start by sorting by "number of submissions" and set difficulty to 800. Participate in Div. 3 and Div. 4 contests. Codeforces
- AtCoder: Excellent for increasing speed and practicing implementation. Try the AtCoder Beginner Contests (ABC). AtCoder Archive
- CodeChef: Great for beginners and topic-specific practice via CodeChef Starters. CodeChef
Phase 4: Intermediate Topics
Study these from YouTube, GFG, or CP-Algorithms, then solve 20–25 questions on each:
- Binary Search: Resource 1 | Resource 2
- Bit Manipulation: Resource 1 | Resource 2
- Two Pointers: Resource 1
- Greedy and Sorting: Resource
- Number Theory Basics: Resource
Phase 5: Benchmarking Progress
Try giving Virtual Contests on Codeforces and aim for these targets to ensure you are improving:
- Div-2: Solve 2–3 questions (up to problem C).
- Div-3: Solve 4–5 questions (up to problem E).
- Div-4: Solve 5–6 questions (up to problem F).
Phase 6: Advanced Topics
Once comfortable, move to advanced algorithms:
6.1 Number Theory & Combinatorics :- Resource
- Advanced Number Theory: Inverse Modulo | Extended Euclidean
- Combinatorics: Basics | Inclusion/Exclusion | Catalan Numbers
6.2 Data Structures & Algorithms
-
Trees & Graphs:Overview|Tutorial
DFS | BFS | Diameter of a Tree | LCA
-
Disjoint Set Union (DSU): Resource 1 | Resource 2
-
Dynamic Programming (DP): Resource 1 | Resource 2 | Resource 3
-
Segment Tree: Resource 1 | Resource 2
-
String Matching: Resource 1 | Resource 2
-
Sparse Table (RMQ): Resource 1 | Resource 2
Essential Resources
-
CP-31 Sheet: TLE Eliminators CP-31 Sheet - This is an excellent resource for problem-solving. It categorizes Codeforces problems by rating , helping you build intuition and recognize patterns systematically.
-
CP-Algorithms: cp-algorithms.com - The absolute best website for detailed explanations and implementations of almost every algorithm and data structure used in competitive programming.
-
Repovive Roadmap: repovive.com/roadmaps
Join the Community
Ready to start your journey and grow together?
OPC (Open Programming Contest): OPC is a competitive programming contest regularly organized by the Coding Club of MNNIT Allahabad. It consists of a well-curated set of problems designed to test problem-solving and coding skills. The contest sees wide participation from programmers across many places, creating a competitive and engaging atmosphere.
Join our college CP community: MNNIT CC Club on Codeforces