Очень много сайтов - codeforces, codility, eulerlist, topcoder, и т.д. (
habrahabr.ru/post/128108/)
Но везде предлагают только задачи, иногда проверки и образцовое решение.
Но как узнать, как до него дошли? Зачастую неочевидно.
Вроде находил несколько книг по теме... Там, Скиена, Меньшиков - но, во первых, сильно мешает восприятию паскаль - очень тяжело читается, что сил нет осмысливать решение.
Есть ресурсы для обучения, которые сначала дают теорию, потом задачи и к ним хорошо расписанные решения?