Вузовско-академическая олимпиада по информатике 2009
Версия для печати

Правила проведения Вузовско-академической олимпиады по информатике

Оргкомитет соревнования

Организационный комитет соревнований состоит из директора соревнований, Жюри, программного комитета и технического комитета. Директор соревнований назначает председателя Жюри, председателя программного комитета и председателя технического комитета. Жюри обладает исключительным правом определения правильности решений, подведения итогов соревнования и дисквалификации участников. Жюри разбирает вопросы, возникшие в результате непредвиденных обстоятельств. Решения Жюри окончательны и обжалованию не подлежат. Программный комитет подготавливает комплект задач соревнования. После соревнования представители программного комитета проводят разбор задач. Технический комитет обеспечивает работоспособность программного и аппаратного обеспечения, следит за порядком на соревнованиях.

Проведение соревнования

Каждый участник получает в свое распоряжение один IBM PC совместимый компьютер конфигурации не хуже Intel Pentium D с 1024 МБ ОЗУ, работающий под управлением операционной системы Windows XP. В случае непредвиденных обстоятельств, таких как неисправность локальной сети или отсутствие электропитания в компьютерном классе, участникам могут быть предоставлены компьютеры более слабой конфигурации. Для составления исходных текстов решений и их отладки участникам предоставляются следующие среды программирования:

  • Microsoft Visual Studio 2005 — для языков C++ и С#
  • Borland Developer Studio 2006 — для языка Pascal
  • Eclipse 3.4/JDK 1.6 — для языка Java
Также на компьютерах будут установлены среды Borland C++ 3.1 и Borland Pascal 7.0, однако они не являются официально поддерживаемыми, и Жюри не гарантирует, что предложенные задачи имеют решение на этих языках.

Соревнование состоит из пробного тура и основного тура.

Пробный тур длится от одного до двух часов. В ходе него участники могут ознакомиться с рабочими местами и программным обеспечением соревнования, решив несколько простых задач. Во время пробного тура на рабочем месте участника может присутствовать учитель или тренер. Результаты пробного тура не учитываются при подведении итогов соревнования.

Основной тур длится 5 часов. Жюри имеет право продлить тур в случае непредвиденных обстоятельств. Во время основного тура участникам предлагается для решения от 6 до 10 задач на русском языке. Жюри принимает решения на языках программирования C++, С#, Pascal и Java. Отправка решений осуществляется во время тура с помощью программного обеспечения соревнования. Через некоторое время после отправки участнику становится доступен результат проверки. После окончания тура решения не принимаются.

Во время основного тура участники могут общаться только с членами технического комитета. Участникик не должны создавать излишнего шума, чтобы не мешать другим участникам. Участник может обратиться к Жюри с вопросом по условию какой-либо задачи. Вопрос должен быть сформулирован на русском языке и предполагать ответ «Да» или «Нет». Вопрос задается с помощью программного обеспечения соревнования. Жюри может ответить на поставленный вопрос «Да», «Нет», «Смотри условие задачи» или «Без комментариев». Жюри может разослать ответ на поставленный участником вопрос всем участникам соревнования.

Участники могут быть дисквалифицированы за несоблюдение данных правил, а также за совершение действий, которые могут нарушить работу программного обеспечения соревнования. За нарушение правил во время пробного тура участник может быть не допущен до участия в основном туре.

Проверка решений

Решением задачи является программа (файл с исходным текстом), написанная на одном из разрешенных языков программирования. Участник может решать задачи на различных языках программирования. Размер исходного текста одной программы с решением не может превышать 64КБ.

Входные данные подаются программе в файле input.txt, расположенном в текущем каталоге. Программа должна выводить ответ в файл output.txt, который должен быть сохранен также в текущем каталоге.

Примеры простого файлового ввода-вывода:

В решениях задач запрещается:

  • работа с любыми файлами, за исключением файлов input.txt и output.txt;
  • выполнение внешних программ и создание новых процессов;
  • ввод с клавиатуры и вывод на экран;
  • работа с GUI-элементами (окнами, диалогами и т.д.);
  • работа с внешними устройствами (принтером, звуковой картой и т.д.);
  • использование сетевых средств.

При проверке решений используются те же компиляторы, что имеются у участников. Однако набор библиотек и модулей, доступных программам во время проверки, ограничен. В ходе пробного тура участники должны убедиться в доступности необходимых им библиотек. До начала основного тура участник может обратиться к Жюри с просьбой расширения доступного набора библиотек и модулей.

Решение проверяется путем последовательного запуска на наборе тестов, который недоступен участникам и является одинаковым для всех участников. Тестирование производится автоматически, поэтому программы должны в точности соблюдать форматы входных и выходных файлов, описанные в условии каждой задачи. Все входные данные предполагаются корректными и удовлетворяющими всем ограничениям, указанным в условии задачи. Набор тестов не предоставляется участникам даже после окончания соревнования.

Для каждой задачи определены максимальное время выполнения и объем доступной памяти для одного теста. Если на одном из тестов программа превысила это время или выделила больше памяти, то считается, что программа не прошла данный тест.

После отправки очередной задачи на проверку участник в течение нескольких минут получает ответ с результатами её тестирования. Участник пожет посылать задачу на проверку такое количество раз, какое считает нужным (если только многократные посылки задачи на проверку не нарушают стабильной работы проверяющей системы — см. выше).

За несколько минут до конца тура, если поток решений превысит пропускную способность сети, жюри вправе прекратить выдачу результатов. Все сданные решения будут проверены после окончания тура.

Определение победителя

Участники ранжируются по числу набранных баллов. Чем больше баллов набрал участник, тем выше его место.

Баллы, набранные участником, считаются как сумма баллов по каждой из задач турнира.

Количество баллов, полученных участником за задачу, вычисляется как максимальное количество баллов, полученных участником за все попытки сдачи задачи.

Каждый тест в задаче оценивается некоторым числом баллов. Баллы, полученные участником за попытку, вычисляются следующим образом:

  • Если решение участника прошло все тесты, оно получает полный балл за эту задачу (сумма баллов за все тесты + бонус за прохождение всех тестов) за вычетом произведения штрафных баллов за попытку, помноженных на количество предыдущих попыток сдачи решения. Если в результате получается число, меньшее нуля, количество баллов полагается равным нулю. Например, если в задаче 25 тестов, каждый из которых оценивается в 2 балла, и за прохождение всех тестов назначается бонус в 50 баллов, то полное решение задачи, сданное с первой попытки, оценивается в 100 баллов. Если же при этом штраф за одну попытку равняется пяти баллам и задача была полностью сдана лишь с третьей попытки, то участник получит 90 баллов.
  • Если решение участника прошло часть тестов, оно получает частичный балл за эту задачу, равный сумме баллов за успешно пройденные тесты, за вычетом штрафа (штраф считается так же, как в предыдущем случае). Если в результате получается число, меньшее нуля, количество баллов полагается равным нулю.

Во время тура участники могут смотреть таблицу с текущими результатами. За час до конца тура таблица замораживается. Все промежуточные результаты являются неофициальными. Официальные результаты объявляются на закрытии соревнования.

Апелляция

Если участник считает, что в одной или нескольких задачах содержатся ошибки, он может подать апелляцию. Апелляция подается в письменном виде через представителя технического комитета во время или сразу после окончания основного тура. Участник должен изложить основания для апелляции и предположения о возможном характере ошибки.

При наличии апелляций председатель Жюри назначает апелляционную комиссию. Если комиссия признает, что некоторые тесты являются некорректными (противоречащими условию задачи), то эти тесты могут быть исправлены или удалены, а задача перепроверена (будут перепроверены решения всех участников, а не только того, который подал апелляцию).