По олимпиадному программированию вот эту книгу рекомендую: https://www.labirint.ru/books/649871/ Ну и конечно же прорешивать задачи на том же https://codeforces.com/ т.к. практика тут главное.