Спортивное программирование, с чего начать?
Вся сложность в том, что вы можете прекрасно знать алгоритмы и структуры данных, но задачки решать будете не в силах. Попробуйте порешать Р. Грэхем, Д. Кнут, О. Паташник - Конкретная маетматика. Основной нюанс в том, что классические алгоритмы практически не применимы в олимпиадных задачках. И дело не в том, что они не работают или работают.
acm.timus.ru
тут советую, задачи от самых простых к самым сложным. Хотя codeforces не пробовал, может там сложность такая же