Открытое личное первенство УрГУ 2011
Версия для печати

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

Организация соревнования

В организационный комитет соревнования входят: директор соревнования, жюри, программный комитет, технический комитет.

Директор соревнования назначает председателя жюри, председателя программного комитета и председателя технического комитета.

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

Программный комитет подготавливает комплект задач соревнования. После соревнования представители программного комитета проводят разбор задач.

Технический комитет обеспечивает работоспособность программного и аппаратного обеспечения, следит за порядком на соревновании.

Допуск участников

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

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

Каждый участник получает в своё распоряжение один IBM PC совместимый компьютер не хуже заранее объявленной конфигурации, работающий под управлением операционной системы Windows. В случае непредвиденных обстоятельств, таких как неисправность локальной сети или отсутствие электропитания в компьютерном классе, участникам могут быть предоставлены компьютеры более слабой конфигурации.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

сообщение расшифровка возможная причина
Accepted решение засчитано программа работает верно
Compilation error компиляция программы завершилась с ошибкой синтаксическая ошибка; неправильно указан язык; размер исходного файла слишком большой
Wrong answer on test N ответ программы неверен ошибка в программе; неверный алгоритм
Runtime error on test N программа завершила работу аварийно или с ненулевым кодом возврата программа на языке С++ не завершается оператором return 0; деление на ноль; бесконечная рекурсия; массивы имеют недостаточный размер
Time limit exceeded on test N программа не завершила работу в установленное время бесконечный цикл; программа ожидает ввода с клавиатуры; неэффективное решение
Memory limit exceeded on test N программа превысила установленное ограничение по памяти неэффективное решение; утечка памяти

При возникновении ошибки Compilation error программа не запускается ни на одном тесте. При возникновении ошибок Runtime error, Memory limit exceeded, Time limit exceeded вывод программы не проверяется.

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

Результаты

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

Суммарное штрафное время определяется как сумма штрафных времён каждой зачтённой задачи. Штрафное время отдельной задачи определяется как время от начала тура до момента посылки первого решения, признанного правильным, плюс 20 минут за каждую предыдущую посылку решения на эту задачу. Нерешённые задачи никакого вклада в суммарное штрафное время не вносят (в том числе и в виде штрафов за неправильные решения).

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