Что касается олимпиад по программированию, мне они нравятся гораздо меньше других.
Во-первых, оценивается только результат работы программы. Изящно написанная  программа принесет столько же баллов, сколько и самая ужасная. Красивая идея, не доведенная до ответа, вообще ничего, а случайно совпавший результат – законный балл.
Во-вторых, задачи носят специфический характер. Очень часто они построены на основе известного нетривиального алгоритма. Такую задачу практически невозможно решить в отведенное время, не зная этого алгоритма. Для тех же, кто этот алгоритм "проходил", задача становится элементарной. В результате, процесс решения сводится к узнаванию известной задачи и кодированию известного решения.