Здесь есть https://informatics.msk.ru/moodle/ достаточное количество задачек по олимпиадному программированию с теорией и тестами.

Нужно зарегистрироваться и затем решать все подряд в секции “Структуры данных и алгоритмы”. Ввод и вывод можно делать через консоль через System.out, System.in и Scanner.