Start Here¶
If you are not sure where to begin, use this page instead of browsing the repo randomly.
The goal is simple:
- pick one clear route
- ignore the advanced doors for now
- finish a small first week that already feels like real progress
Who This Page Is For¶
Use this page if any of these sound like you:
- you are new to competitive programming
- you know some syntax, but do not yet have a stable practice loop
- the repo looks rich, but you are not sure which page is the real first page
Quick Audience Fork¶
Use the smallest route that matches your situation:
- completely new:
stay on this page and follow the
First 3 PagesandFirst 3 Repo Notes - returning after a break:
reopen Foundations cheatsheet, solve one short ladder note, then continue from
Your First Week - you already know the weak topic: do not force the full beginner loop; go to Route Map or Problem Finder
What To Ignore For Now¶
Do not start with these unless you already know why you need them:
Topic MapsExternal Problem IndexMixed RoundsAdvancedContest Playbooks
They are useful later, but they are not the best first door for a beginner.
Best First Route¶
If you want one default route, use this:
- Foundations overview
- Foundations ladders
- one first repo note inside that ladder
- Foundations cheatsheet only after the note exposes a retrieval gap
That route works because it gives you:
- one teaching layer
- one practice layer
- one real problem anchor
- one quick-reference layer
This is the smallest version of the repo-wide loop:
topic -> ladder -> note -> cheatsheet/build kit
One Calm Beginner Rail¶
How To Read This Diagram¶
What to notice:
- the route is intentionally narrow at the start: one topic rail, then one note rail, then one retrieval door only when needed
- the "ignore for now" box is part of the route, not an afterthought
Why it matters:
- beginners often lose momentum by opening too many good pages too early
- this rail is designed to create one real study loop before the rest of the repo's width becomes useful
Code and workflow bridge:
- the first pages feed directly into one local compile/run loop, then one first note, then one retrieval layer such as the cheatsheet or build kit
Boundary:
- this is a default rail, not a prison; if you already know the weak topic or are returning after a break, the lighter branch in
Quick Audience Forkis still the right choice
First 3 Pages¶
Open these in order:
Those three are enough to build a real local loop:
- write code comfortably
- debug by meaning and invariant
- solve at least one standard static-query problem cleanly
If Day 1 still feels shaky, keep these open beside the first page:
First 3 Repo Notes¶
Solve these in order:
Optional next two if you still feel good:
Your First Week¶
If you want a concrete seven-day rhythm:
- Day 1: read C++ Language, open Build Kit, use Template Library to find
contest-main.cppandfast-io.cpp, compile the starter once with the release build, rerun it once with the debug build, then solve Weird Algorithm - Day 2: solve Missing Number and Distinct Numbers
- Day 3: read Reasoning and solve Increasing Array
- Day 4: read Sorting and solve Ferris Wheel
- Day 5: read Binary Search and solve Factory Machines
- Day 6: read Prefix Sums and solve Static Range Sum Queries
- Day 7: read Two Pointers and solve Apartments
What “Good Progress” Looks Like¶
By the end of that route, you do not need to know graphs, DP, or suffix structures yet.
You only need to be able to:
- compile and run C++ comfortably
- explain what your main variables mean
- recognize sorting, prefix sums, and simple two-pointer scans
- solve a few clean CSES-style tasks without guessing
That is already a strong start.
Which Workflow To Use Right Now¶
Use the smallest workflow that matches the task:
- ordinary batch problem with saved sample: stay with the compile/run/diff loop from Foundations cheatsheet
- samples pass, but the optimized solution still feels untrustworthy: move to Stress testing workflow
- interactive or simulator-style task: move to Local judge workflow
- many-valid-answers task where legality is still fuzzy: move to Many-Valid-Answers / Validator-First Workflow
- validator-heavy or predicate-checked batch task: move to Special Judge / Output Protocol Workflow
Do not escalate too early. Most beginner problems should stay in the first bucket.
Continue Here Next¶
If the first week went well, use this exact next route:
- Foundations ladders
- Data Structures overview
- DSU or Fenwick Tree
- the corresponding ladder and one anchored note
- Practice hub only after you want more than one ladder at a time
If you want a broader chooser instead of that default handoff:
If You Still Feel Lost After Week One¶
Use the smallest next door that matches the problem:
- still shaky on basics: stay in Foundations ladders
- you want one new family at a time: open Learning Areas
- you mostly know the ideas but need better retrieval: open Build Kit and Notebook
- you want broader training blocks: open Practice hub