Skip to content

Competitive Programming, Taught Like A Real Curriculum

From first prefix sums to contest-ready problem solving

competitive-programming-cpp is a C++ algorithms guide built for people who want a learning path, not just a pile of snippets. It combines topic order from strong university courses, practice taste from major contests, and implementation habits that hold up in real competition.

Beginner friendly C++ first Contest-ready Theory-backed

Start With One Door

  • I am new to CP

    Use one guided entry page instead of choosing between topics, ladders, and tools too early.

    Open Start Here

  • I know the weak topic

    Open the teaching-first area map, then go into one family on purpose.

    Open the curriculum overview

  • I need today's next training set

    Use ladders, mixed rounds, and contest playbooks once the topic is roughly known.

    Browse practice

  • I know the idea but need the snippet

    Reopen the smallest useful retrieval layer: template, notebook, or workflow page.

    Open the build kit

Default Learner Rail

If you want one calm default path, use this:

Start Here -> Foundations -> one ladder -> one anchored note -> Data Structures -> Graphs -> Dynamic Programming -> Math

Tier Guide

Core Bridge Deep Enrichment

  • Core: first-wave curriculum families you should expect to revisit often
  • Bridge: pages that reconnect fragmented families before you dive deeper
  • Deep: serious later-stage lanes with heavier retrieval cost
  • Enrichment: breadth or theory spillover that is useful, but not the default next step

The Site Has Four Jobs

Job Open this first Use it for
Learn Learning Areas understanding the idea, invariant, and sequencing
Practice Practice hub solving targeted ladders, notes, and mixed rounds
Retrieve Build Kit reopening snippets, workflows, and checklists under pressure
Track Contest Playbooks shaping practice for ICPC, USACO, or olympiad-style goals

If you want the fuller chooser by bottleneck or contest format, open Route Map.

Best way to use this site

Read one topic page, solve one targeted problem, then write or adapt one clean C++ implementation. That loop is what turns reading into contest skill.

What This Repo Already Covers

If you want one picture before choosing a route, use the taxonomy view.

Deep Topic Taxonomy

Open Deep Topic Taxonomy when the question is:

  • what families already exist in the repo
  • where one advanced lane sits relative to its siblings
  • how broad the bridge-plus-deep surface already is

Support The Project

If this repo saves you time, helps your training, or gives you a cleaner way to learn algorithms, you can support the project here.