English version is in beta. All contents of the site should be already translated (mostly using machine translation), and everything should work properly. However, if you find any problems, please contact me.

Level 2B

To advance to the next level, you need to solve all problems (except the contests marked with asterisk).

*Backtracking (recursive search)

This topic is quite complex, so if you don't understand it, you can skip it and return to it at level 6 (it will be mandatory there). However, recursive backtracking is a very useful technique, so try to master it now.
I've found some theory texts that will be useful for you, but the topic is indeed complex, and the theory presented below may not cover all the problems. Anyway, as always, think with your own head.

Complexity of algorithms

This is also a very wide topic. There are some links that may be useful for you, but you can also search for more information in the Internet:
Link one,
Link two

There is also a golden rule of complexity that is not mentioned on those links: a typical modern computer performs about 100 million — 1 billion operations per second. So, in order to estimate the running time of your code, substitute the maximal possible $N$ into the complexity formula, and divide by 100 million or 1 billion. The result will be the running time in seconds (very approximate, of course, but still useful). For example, if maximal $N$ is $1000$, then an $O(N^2)$ algorithm will run in ~0.001—0.01 seconds and most probably will fit into time limit. But if maximal $N$ is $100 000$, the runtime will be 10—100 seconds and will get a time limit exceeded outcome. (For python, the number of operations per second is 10-100 times less.) Use this rule to estimate whether a particular algorithm can be used in a particular problem.

Basics of dynamic programming

Another wide topic, bu fortunately you don't need to study advanced parts of DP now. Theory on GeeksForGeeks (read "Basic Concepts" and some "Basic Problems"),
Basic theory on SOI.ch

"Technical" problems

Prime numbers and factorization

Theory on cp-algorithms: section one, section two, section three (you don't need advanced topics like Fermat's or Miller-Rabin methods)