Competitive Programming (C++)

The competitive programming branch is a branch that has the goal of giving introductory sessions in algorithms, problem solving, and solution-oriented thinking. This is a concluding report that summarizes the work done by the Hack Club - Competitive Programming Branch (which contained seven, carefully-chosen mentees) throughout 2022. The club mainly uses [Mostafa Saad's sheet] as the main practice material. Moreover, the club recommends the use of USACO's [website] as a learning material. In addition to those previously made resources, the club has its own original pdfs. All info about the branch are [here]. There were two offline session done at our wonderful boarding school. During the summer vacation, the club had 13 online session. After finishing the sessions, the Egyptian Olympiad in Informatics (EOI)'s season has started. The EOI qualifications were on the 2nd and 3rd of September, where a contest was prepared to make the contestants ready for the contest. See the Contest's [URL] and the HackClub's [group] on CodeForces. Note that the group should be joined before entering the contest.

There were two offline session done at our wonderful boarding school. During the summer vacation, the club had 13 online session:


Session 1

Revision on the contents of the two offline sessions. See the Recording and the files [here]

Session 2

Overview of the algorithmic time complexity. See the Recording and the files [here]

Session 3

In-depth overview of logarithmic time complexity. See the Recording and the files [here]

Session 4, 5, and 6

Overview of Data Structures and STLs(standard template library) in C++. See the Recording and the files [here]

Session 7

Basic Number Theory: Factorization, Prime Numbers + Sieve, and Perfect Squares. See the Recording and the files [here]

Session 8

More Advanced Number Theory: GCD, LCM, and Modular Arithmetic. See the Recording and the files [here]

Session 9

Basic Graph Theory: What is a graph? connected components? DFS?. See the Recording and the files [here]

Session 10

Two Harder Problems from Mostafa Saad's problem sheet on both Graphs and Number Theory. See the Recording and the files [here]

Session 11

Intro to recursion techniques. See the Recording and the files [here]

Session 12

More recursion techniques + intro to dynamic programming. See the Recording and the files [here]

Session 13

Last Session: Prefix sums + Guide on how to delve deeper into the world of Problem Solving. See the Recording and the files [here]