Уровень 3А

Чтобы перейти на следующий уровень, надо решить все задачи (кроме контестов со звездочкой).

Простая жадность

Стек, дек, очередь

Теории по этим темам тут пока нет, но очень много теории есть в интернете. Вот, например, что я нашел: раз, два.

*Стандартные структуры данных (STL и т.п.)

Тема не обязательная, но будет полезна в дальнейшем. Задачи этой темы можно решать с помощью теории с высоких уровней, но в C++ есть полезные стандартные структуры, которые вам позволят эти задачи решать легче. Возможно, задачи вам все равно покажутся сложными — но тема не обязательная, можете возвращаться к ним потом.

Теория по C++: раз, два, три. Вам не надо все учить наизусть, просто надо понимать, что бывает.

В других языках напрямую таких же структур нет, но можете поискать что-нибудь похожее. В Java скорее всего найдете, в питоне только для части задач, в паскале ничего такого по сути нет.

Продвинутое тестирование задач

Перечитайте еще раз текст про тестирование задач из уровня 1В — вам он теперь наверняка еще более полезен, и вы можете освоить более продвинутые техники (если еще не освоили).

Проcтые графы

Теории тут пока нет. Можете прочитать основные вещи в википедии (хотя там много лишней терминологии), или здесь (там реализация на питоне, но, я думаю, вы догадаетесь, как это сделать на паскале), или здесь (тут несколько страниц). Вам пока надо только понимать, что такое граф, знать ряд определений, и уметь хранить графы в программе. Из способов хранения графа вам пока будет достаточно матрицы смежности, про остальные можете прочитать для сведения. Обходы графа вам пока не нужны (до следующей темы).