Here are some important topics for a beginner problem solver:
Loops: Learn how to repeat tasks using for, while, and do-while loops.
Conditionals: Understand how to make decisions using if, else if, and else.
Arrays: Practice storing and accessing multiple values in a single variable.
Functions: Learn how to break your code into reusable blocks.
Recursion: Understand how a function can call itself to solve a problem.
Sorting: Practice ordering numbers or strings using algorithms like bubble sort or insertion sort.
Searching: Learn how to find an item in a list, such as with linear search or binary search.
String manipulation: Practice working with text, including reversing or finding parts of a string.
Mathematics: Practice basic number problems like finding the greatest common divisor (GCD) or prime numbers.
Debugging: Learn how to find and fix errors in your code.
These are fundamental for building a strong problem-solving foundation.
Topics and Resources ->
Common Categories [all level] [most problems on CF are based on one of these categories or combinations of these categories] 1) Greedy 2) Math 3) Implementation 4) Constructive Algorithms
Important: 1) Brute Force 2) Sorting 3) Time complexity Analysis 4) Strings (Only Basics) 5) Elementary Number Theory 6) STL 7) Basic Bitwise stuff
(1000-1199 rated people): (Note: do it only when above topics are covered)
8) Number Theory (Intermediate) like prime factorisation, sieve, etc. 9) Recursion 10) Binary Search 11) Two pointers
Practice Range: 800 — 1300(CF)
Resources to learn: [Mostly Topic Modules] [Prefer for learning concepts primarily if some problems provided in the modules are hard for you then feel free to skip it]
Time complexity: https://usaco.guide/bronze/time-comp?lang=cpp
Brute Force: https://usaco.guide/bronze/intro-complete?lang=cpp
Sorting: https://usaco.guide/bronze/intro-sorting?lang=cpp https://usaco.guide/silver/sorting-custom?lang=cpp (Custom Comparators) (Optional for this level)
Recursion: https://usaco.guide/bronze/complete-rec?lang=cpp
STL: https://usaco.guide/bronze/intro-ds?lang=cpp (Part 1) (String basic included) https://usaco.guide/bronze/intro-sets?lang=cpp (part 2) https://usaco.guide/silver/intro-sorted-sets?lang=cpp (part 3) https://usaco.guide/gold/stacks?lang=cpp (part 4) https://usaco.guide/silver/custom-cpp-stl?lang=cpp (optional)
Number theory: https://usaco.guide/gold/divisibility?lang=cpp (part 1) https://usaco.guide/gold/modular?lang=cpp (part 2) https://www.youtube.com/watch?v=KOzByAdxVZ8 (Video)
Binary search: https://usaco.guide/silver/binary-search?lang=cpp
Two pointers: https://usaco.guide/silver/two-pointers?lang=cpp
Bitwise Stuff: https://usaco.guide/silver/intro-bitwise?lang=cpp https://www.youtube.com/watch?v=1um-WUyjess (Video) Pratice Source: ACD ladders or CF problemset [practice modules] https://codeforces.net/blog/entry/55274 **