2017-02-06 20:48:00
Итак, ты решил заняться олимпиадным программированием. С чего же начать? Допустим, ты выбрал приятный тебе язык программирования (о том, что популярно и почему, мы еще поговорим), решаете какие-то задачи на уроках, и вот ты приходишь на свою первую олимпиаду. Стресс гарантирован, и чтобы всё не было так пугающе, обсудим, с какими трудностями ты можешь столкнуться.
1. Новый компьютер, незнакомая среда программирования, что-то не работает.
По порядку: компьютеры на олимпиадах обычно не отличаются удобностью. К этому надо быть готовым. Привычка к своему компьютеру оказывает пагубное влияние - первые полчаса ты будешь попросту приспосабливаться к новой клавиатуре. Поделать с этим ничего нельзя: свои мыши и клавиатуры на олимпиадах чаще всего не разрешены. Тут надо просто привыкать. Зачастую ребята, готовясь к серьезным соревнованием по программированию, тренируются не на своих компьютерах, чтобы приучить себя к такому дискомфорту.
Незнакомая среда с непривычки всегда проблема. Старайся овладеть стандартными средами для своего языка. Но вообще тут уже не лишним будет позвать ассистента-наблюдателя, которые есть в каждой аудитории, и задать вопрос ему. Тем более если не работает что-то стандартное. На этот случай перед олимпиадой по программированию чаще всего проходит пробный тур, в котором тебя просят написать задачу A+B (сложить два числа и вывести результат), и если по какой-то причине она не работает (хотя ты уверен, что с ней то ты справился) - смело зови наблюдателя, тебе должны помочь.
2. «У меня все работает, а при проверке не работает». Самое распространенное возмущение юных олимпиадников. Тестирующая система выдает один из вердиктов при проверке. Выделяют 7 типов ошибок:
Wrong answer
Неверный ответ. Результат работы программы не совпадает с ответом жюри.
Неверный формат вывода или алгоритмическая ошибка в программе.
Time limit exceeded
Превышен указанный в задаче лимит времени. Программа выполняется дольше установленного времени.
Неэффективное решение или алгоритмическая ошибка в программе.
Presentation Error
Отсутствие выходного файла OUTPUT.TXT
Файл не создан, неверное имя файла или сбой программы до открытия выходного файла.
Compilation error
Ошибка компиляции. В результате компиляции не создан исполняемый файл.
Синтаксическая ошибка в программе или неверно указано расширение файла. Возможно, что при реализации на языке Java был использован класс, отличный от Main.
Memory limit exceeded
Превышен указанный в задаче лимит памяти. Программа использует больше установленного размера памяти.
Неэффективный алгоритм либо нерациональное использование памяти.
Runtime error
Ошибка исполнения. Программа завершила работу с ненулевым кодом возврата. В этом случае результат работы не проверяется.
Возможно, в программе произошло обращение к несуществующему элементу массива, деление на ноль и т.д. Возможно, программа на C++ не завершается оператором «return 0» или по иной причине вернула ненулевой код возврата.
Помимо +/- у каждой задачи в таблице результатов ты еще можешь увидеть цифру. Она обозначает количество неуспешных попыток сдачи.