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

Оргкомитет олимпиады

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

Проведение олимпиады

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

  • Microsoft Visual Studio 2010 — для языков C++ и С#
  • Borland Developer Studio 2006 — для языка Pascal
  • Eclipse Helios/JDK 1.6 — для языка Java

Олимпиада состоит из пробного тура и основного тура.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Апелляция

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

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