Level 7B
To advance to the next level, you need to solve all problems.
Greedy algorithms
A very advanced theory (in general, for the tasks below, and in principle in life, this theory is not particularly needed, you can read "for information", but in principle it is useful to understand about matroids, as well as about Huffman codes). Also remember the theory from level 2B, and you can also look up in google.
DFS: difficult tasks
The whole theory is in the same text about the DFS (link above at level 3), only now you already need to know everything here.
You can also look at e-maxx, in particular, there is a simple proof of the algorithm for constructing strongly connected components.
Knuth-Morris-Pratt Algorithm (KMP)
See the video recordings of lectures SIS.2008.B', section "Algorithms on strings".
Theory on e-maxx
Theory on habr
You can search the Internet for more.
In addition to actually searching for a substring in a string, the prefix function itself also often has other useful uses. There are also tasks for this below.
Some of the tasks below were previously in hash tasks. Solve them once again, this time using the CMP.