Уральские олимпиады
Уральский Федеральный университет имени первого Президента России Б.Н.Ельцина
Чемпионат Урала по программированию 2003
Версия для печати

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

ПРАВИЛА ПРОВЕДЕНИЯ ЧЕТВЕРТЬФИНАЛЬНЫХ СОРЕВНОВАНИЙ
КОМАНДНОГО СТУДЕНЧЕСКОГО ЧЕМПИОНАТА МИРА
ПО ПРОГРАММИРОВАНИЮ

Cостав команды, выступающей на четвертьфинальных соревнованиях, должен удовлетворять требованиям к команде, предъявляемым на очередном полуфинале.

К участию в соревновании допускаются команды, удовлетворяющие следующим условиям:

  • состоящие из трех студентов одного вуза очной формы обучения и до завершения учебы которым осталось не менее года (исключения только по согласованию с оргкомитетом соревнований)

Вместе с командой на соревнования может приехать руководитель и запасной.

Вуз вправе изменить состав команды, вышедшей в полуфинал. Новый состав команды при этом должен соответствовать правилам полуфинальных соревнований.

Соревнования проходят на IBM PC-совместимых компьютерах в следующей конфигурации: процессор Intel Pentium и выше, ОЗУ не менее 8 Мб, операционная система MS-DOS версии 6.0-7.0 и выше. Все компьютеры подключены к сети Novell NetWare.

Используются следующие системы программирования: Borland C/C++ 3.1, Borland Pascal 7.0, DJGPP (GCC 3.2.1 и RHIDE 1.5), Free Pascal 1.0.6.

Эти системы будут полностью доступны каждой команде во время соревнований, за исключением библиотеки Turbo Vision. Категорически запрещается использовать какие-либо другие программы и библиотеки, а также личные дискеты и другие электронные носители информации.

Соревнования проводятся в два тура, результаты которых суммируются.

Команде, состоящей из трех студентов, предоставляется на соревнованиях один компьютер. На каждом туре команде будет предложено 6-9 задач. Поскольку официальный язык финала соревнований и полуфинала NEERC - английский, а четвертьфинальные соревнования проводятся в России, то задачи первого тура будут предложены на русском языке, задачи второго тура - на английском языке. Продолжительность каждого тура соревнований - 5 часа. Жюри имеет право продлить соревнования в случае каких-либо непредвиденных обстоятельств.

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

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

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

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

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

Программа, посланная жюри для проверки, не должна выводить какую-либо информацию на экран или вводить информацию с экрана.

В исходных текстах решений, переданных жюри для проверки, запрещено:

  • обращаться к памяти по ее физическому адресу или обращаться к памяти, отличной от стека, кучи и статических данных программы;

  • читать и записывать вектора прерываний, обращаться к портам компьютера;

  • использовать прямое обращение к регистрам процессора (_AX) и ассемблерный код;

  • создавать и работать с любыми файлами, за исключением тех, которые явно указаны в условии задачи (входные и выходные файлы);

  • работать с подкаталогами;

  • выполнять внешние программы;

  • использовать сетевые средства;

  • изменять состояние таймера;

  • вызывать подпрограммы, выполняющие действия, специфические для данной вычислительной или операционной системы (такие как подпрограммы из bios.h, dos.h, windows.h, dpmi.h, pc.h и т.п.);

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

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

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

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

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

Возможные типы ошибок:

тип ошибки

номер теста, на котором произошла ошибка

когда возникает

возможная причина

ошибка компиляции

не сообщается

в результате компиляции не создан исполняемый файл

синтаксическая ошибка в программе, неправильное расширение файла

неверный ответ

сообщается

ответ неверен

неверный алгоритм решения

превышение предела времени

сообщается

программа превысила установленный в условии предел времени

неэффективное решение: ошибка в программе

ошибка исполнения

сообщается

программа завершила работу с ненулевым кодом возврата. В этом случае результат работы не проверяется

ошибка исполнения (runtime error): программа на языке С не завершается оператором return 0: ненулевой код возврата явно указан в программе

нарушение формата вывода

сообщается

программа проверки не может проверить выходные данные, поскольку их формат не соответствует описанному

неверный формат вывода: выходной файл имеет неправильное имя или отсутствует

Тесты выполняются в порядке возрастанием их сложности (по мнению жюри). Номер ошибочного теста, указываемый в результатах проверки, есть номер первого теста, не прошедшего проверку. Например, если жюри сообщило, что “Превышен предел времени на тесте № 9”, это означает, что:

  • тесты с 1 по 8 прошли проверку;

  • на более сложном, чем предыдущие восемь, девятом тесте программа превысила предел времени.

В этом случае можно заключить, что алгоритм правильный, но неэффективный.

Во время проведения соревнований участники могут задавать вопросы по условиям задач. Вопрос должен быть составлен в форме, предполагающей ответы "ДА" или "НЕТ". Если вопрос составлен некорректно или ответ следует прямо из условий задач, жюри отвечает "БЕЗ КОММЕНТАРИЕВ". Если жюри согласно, что в условии задачи присутствует неясность или ошибка, то всем участникам соревнований дается соответствующее объявление. Передача вопросов в жюри и получение ответов производится с помощью специального программного обеспечения.

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

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

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

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