Level 3A
To advance to the next level, you need to solve all problems (except the contests marked with asterisk).
Simple greedy algorithms
Stack, queue, dequeue
one (do not bother with doubling the array yet, use fixed-size arrays),
two part 1, two part 2, two part 3 (in all these three parts, read mainly the into section and Implement using an Array section).
*Standard data structures (STL, etc.)
The topic is optional, but it will be useful in the future. The problems of this topic can be solved using theory from high levels, but there are useful standard structures in C++, which will allow you to solve these tasks easier. Perhaps the tasks will still seem difficult to you — but the topic is not mandatory, you can return to them later.
You mostly need to know the following C++ templates: std::vector
, std::set
, std::map
, optionally their unordered
variants and std::list
and std::queue
. And std::sort
function. You can read about them in your favorite reference book, or use some links that I found: one, two.
You don't have to learn everything by heart, you just need to understand what happens.
There are no such structures directly in other languages, but you can look for something similar. In Java, you will most likely find it, in python only for part of the tasks, in pascal there is nothing like that in fact.