http://acmp.ru/
Еще в школе мне очень понравилось решать такую задачу:
Дана строка длины L (30 < L < 1000), представляющая собой предложение на русском языке, зашифрованное шифром цезаря с неизвестным сдвигом K (0 < K < 33). Выведите исходное предложение.
Например:
input.txt "Цхчёкхюфвр юлтхилс - дщх щхщ, сщх клтжлщ йжкхшщп зло ъкхихтгшщипё."
output.txt "Порядочный человек - это тот, кто делает гадости без удовольствия."