Season 2027 · HNU-FCSIT ICPC Training

Your next level starts here.

Explore HNU-FCSIT ICPC training material across every level. Learn concepts, experiment with code, and practice at your own pace.

Free to explore No account needed Your own pace

Hello, future problem solver.
Meet Bit.A curious mind. Just like you.
{ }++
01published level
06guided sessions
72clear lessons
13visual experiments
Understanding starts with trying

Make the invisible
steps visible.

A loop is more than a few lines of code. It’s a sequence of small decisions. Step through this one and watch the answer take shape.

1

Read the idea

Plain explanations, real C++ examples.

2

Follow the steps

Change inputs and see what happens.

3

Make it yours

Predict, practice, and explain the why.

Explore all visual labs
A little code. A big beginning.C++23
// One value at a time
int sum = 0;
for (int x : values) {
    sum += x;
}
30
11
42
13
54
sum00/5 values
Bit waving hello
A companion for the little breakthroughs

Curiosity looks
good on you.

Meet Bit, your resident question-asker and reminder that nobody starts as an expert. Stay curious. Try the small example. Celebrate the moment it clicks.

Before you begin

A few good
questions.

Find your way through the training material.

Which training level should I choose?

Read each level’s description and sessions to find the right fit. Level 0 introduces C++ and problem-solving foundations for beginners. You can open any published level directly.

Is this website only for Level 0?

No. This is the community’s home for training material across all levels. The training levels page shows the material currently published by the training team.

Do I need to create an account?

No. Every published lesson, visual lab, and reference is open to everyone. Your progress, notes, and bookmarks are saved in this browser.

How is website activity measured?

Anonymous activity counts help the training team improve the material: page visits, button clicks, resource opens, and learning milestones. Notes, search text, and form input are not sent. Your browser gets a random identifier; Do Not Track and Global Privacy Control are respected.

Can I run C++ code on the website?

The visual labs are guided simulations. To compile C++ programs, copy the complete examples into your local C++23 compiler. Code fragments need their surrounding program.

Where are the original materials?

You can open the complete original PDFs from the Resources page or jump to the source page from a lesson.

Will my progress sync across devices?

Progress stays in the browser on the device you use. You can export a backup from Resources. Clearing browser storage removes the local copy.

Choose what you want to learn next.

Keep learning.
Keep moving forward.

Your training material, together in one place.

Find your next level
From a problem to a programIdentify the input, output, and constraints, then translate a small plan into C++.Variables, types, and remembered valuesChoose a representation, initialize it, and understand what assignment really changes.Arithmetic without surprisesPredict division and remainder, widen before multiplication, and format decimal answers.Conditions and logical decisionsBuild exclusive categories, combine comparisons, and protect operations with short-circuit logic.Optional: other ways to chooseRecognize switch for exact choices and the conditional operator for choosing a value.For loops: make repetition preciseTrace initialization, condition, body, and update—and avoid an extra iteration.While, do-while, and stopping rulesChoose a loop from its stopping condition and read the exact input format.Break, continue, and early answersDistinguish leaving a loop from skipping one iteration, without losing required input.Five patterns worth understandingUse sums, counts, best-so-far candidates, products, and flags to process a stream.Nested loops: rows and columnsTranslate a shape into two loop roles and count the total work.Take a number apart, one digit at a timeUse remainder and division to process decimal digits, including zero.Multiple cases and a debugging mindsetCombine the patterns, isolate each case, and test the boundaries that can break your idea.Arrays: give every value a placeUnderstand indices, initialization, capacity, active length, and the first safe array loop.Scan, count, search, and compareDistinguish values from positions and preserve the exact tie rule a problem asks for.Change a sequence without losing itUpdate, copy, compare, reverse, and inspect neighbours using the correct bounds.Matrices: think in two coordinatesTraverse tables, total rows and columns, inspect diagonals, and protect grid neighbours.Characters become stringsSeparate characters from numbers, then safely inspect and edit managed text.Read the text the problem actually givesChoose words or full lines, preserve empty cases, and reset only the state that needs it.Scan text: count, filter, transformBuild a result from matching characters without losing leading zeros or skipping shifted text.Join, compare, and find textLearn content comparison, lexicographical order, substring counts, and the not-found sentinel.