Small steps. Stronger solutions.
Your problem-solving journey, one idea at a time.
Find your next challenge.
Explore the material, put ideas into practice, and keep building your problem-solving skills.
Explore levels// One value at a time
int sum = 0;
for (int x : values) {
sum += x;
}Your learning path
Choose a level and pick up where you left off.
Level 0 Training
Explore levelProgramming foundations
Turn a problem statement into a working C++23 program. Learn input, data types, safe arithmetic, decisions, loops, and the habits that make a solution correct.
Arrays & strings
Store and revisit values, work with rows and columns, and treat text as a sequence of characters. Build safe scans, searches, transformations, and small state machines.
Functions & complexity
Build reusable C++ helpers, make their contracts explicit, and count time and memory before the input gets large.
STL: sequences & adaptors
Learn vector, pair, deque, queue, priority_queue, and stack through state changes, ordering rules, and the cost of each operation.
Sets & maps
Choose between distinct keys, repeated items, key–value records, and dynamic ranks. Trace the state, make safe updates, and count the real cost.
Static range queries
Build prefix totals, count bounded values, and record range additions at their boundaries. Extend the same reasoning to substrings, grids, and layered queries.